Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python lstm如何进行前向验证&;储蓄模型_Python_Tensorflow_Keras - Fatal编程技术网

Python lstm如何进行前向验证&;储蓄模型

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月),使其不需要再次开始?或者每次我训练模型

我有一个经过训练的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)