记录下自己LSTM这几天卡住我的地方
1:LSTM的输入由上一个时间的细胞输出h(t-1)与这一个时间的输入xc组成,这两者通过组合成了时间t的输入。
2:当前时间步的输出为ht,该ht就是预测后的值,我的目标是产生一个单个的数值,所以通过linear线性变化,得到这个值,然后计算损失和反向传播梯度下降训练LSTM中的参数。对于分类问题softmax一样。
3:一些tensorflow中LSTM的参数理解,input_timesteps表示这一个环节拥有多少个lstm的小系统,比如我现在有32492的数据,其中50是组数,492是我每一次训练的数据,含49个那样的小系统,每次输入一个21的数据进去计算。
tensorflow函数的学习:
1:model.compile 为构建好的model添加优化器和损失函数。
2:callbacks = [EarlyStopping(monitor=‘val_loss’, patience=2),
ModelCheckpoint(filename=…, monitor=‘val_loss’, save_best_only=True)]
分为两个部分,EarlyStopping的意思是对loss的值进行一个判断,对于一定epoch中loss变化不大的就停止训练防止过拟合,其中patience就是管这个的,决定了啥时候要停,具体参数还没有完全学完。ModelCheckpoint表示保存这个最优值,保存到哪里,filename=,具体参数学习过程中。
3:model.fit(
x,
y,
epochs=epochs,
batch_size=batch_size,
callbacks=callbacks
)
x参数代表输入数据值,y代表标签值。
该函数返回一个日志,记录了损失函数和其他指标的数值随epoch变化的情况,如果有验证集的话,也包含了验证集的这些指标变化情况。