【问题标题】:Keras predicting and updating the neuron weights at the same timeKeras 同时预测和更新神经元权重
【发布时间】:2021-10-09 10:13:35
【问题描述】:

我已经使用 Keras 构建了 (model.compile()) 神经网络模型。然后我使用我的训练数据拟合了模型 (model.fit())。最后,我使用模型来预测(model.predict())测试数据的值。

根据我的理解,在拟合模型的过程中,网络神经元的权重在每批中都在更新。在预测时,情况仍然如此吗?预测时神经网络的权重是否会针对每个批次进行更新?是否有可能打开和关闭此选项?我正在运行两个分析,在第一个分析中,我希望在预测时不更新权重,但在另一个分析中,我希望为每个批次更新权重。

【问题讨论】:

    标签: python tensorflow machine-learning keras neural-network


    【解决方案1】:

    在训练过程中每batch后都会更新权重,训练好模型后,可以保存后再使用:

    # Save model
    model.save('saved_model.h5')
    # Loading saved model weights
    model.load_weights('saved_model.h5')
    

    然后使用保存的模型来预测测试数据值。

    如果您想对更新过程进行任何更改,您可以更改与权重更新相关的超参数,包括时期数批量大小

    【讨论】:

      【解决方案2】:

      权重在预测时不更新,仅在训练时更新,因此仅适用于 Model.fit

      【讨论】:

      • 有没有办法让它在预测时更新权重。如果没有,怎么可能实现,看起来很复杂。
      • 如果在预测时更新权重称为训练。预测通常用于测试与训练不同的数据,验证模型并确保没有过度拟合。对于您的问题,您可以预测、保存模型,然后使用新数据重新训练。
      猜你喜欢
      • 1970-01-01
      • 2021-01-07
      • 2016-08-17
      • 2017-10-15
      • 2019-09-10
      • 1970-01-01
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多