Python lstm如何进行前向验证&;储蓄模型
我有一个经过训练的LSTM模型。然而,我现在想尝试对我的模型进行一次前向验证&我有点困惑如何进行验证 假设我使用一年的每日数据(2010年1月至2010年12月)来预测下个月(2011年1月)。然后,一旦该月完成,我将该月的数据包括在内,因此我多年的培训数据现在是2010年2月至2011年1月,用于对2011年2月进行一些预测 所以我有2010年1月至2010年12月的训练模型。然后,如何将最终模型权重传递给下一个训练批次(2010年2月至2011年1月),使其不需要再次开始?或者每次我训练模型时,它应该以一个随机的起始重量开始 它是否只是像在循环中调用下面的函数,并以某种方式使用返回的模型?是否可以在每个训练点保存模型,以便以后检索和检查Python lstm如何进行前向验证&;储蓄模型,python,tensorflow,keras,Python,Tensorflow,Keras,我有一个经过训练的LSTM模型。然而,我现在想尝试对我的模型进行一次前向验证&我有点困惑如何进行验证 假设我使用一年的每日数据(2010年1月至2010年12月)来预测下个月(2011年1月)。然后,一旦该月完成,我将该月的数据包括在内,因此我多年的培训数据现在是2010年2月至2011年1月,用于对2011年2月进行一些预测 所以我有2010年1月至2010年12月的训练模型。然后,如何将最终模型权重传递给下一个训练批次(2010年2月至2011年1月),使其不需要再次开始?或者每次我训练模型
function train_model(X_train, y_train)
model.fit(
X_train,
y_train,
batch_size=1024,
epochs=50,
validation_split=0.05)
return model
两个问题都是肯定的
1) 在不重新编译模型的情况下,模型权重将绑定到模型中,因此
#model=2010年1月至2011年1月的训练和装配模型
#
对于X、y批次:#新窗口上的批次(2010年2月至2011年2月)
模型拟合(X,y)
用于根据以前的权重更新模型,但请务必考虑这是否正是您想要做的
为了在检查点保存,我建议使用回调。这样可以很容易地保存模型和特定迭代点,以便将来可以从该点开始训练。您可以按如下方式使用模型检查点回调:例如,捕获迄今为止获得的最大精度,并将其保存在检查点文件中。
然后拟合模型。
model.fit(epochs=10,callbacks=[model\u checkpoint\u callback])
您可以重新加载它以进行更新。
model.load(检查点\u文件路径)
checkpoint_filepath = '/tmp/checkpoint'
model_checkpoint_callback = tf.keras.callbacks.ModelCheckpoint(
filepath=checkpoint_filepath,
monitor='val_acc',
mode='max',
save_best_only=True)