是否再次调用 model.fit 方法重新初始化已经训练的权重?
Posted
技术标签:
【中文标题】是否再次调用 model.fit 方法重新初始化已经训练的权重?【英文标题】:Does calling the model.fit method again reinitialize the already trained weights? 【发布时间】:2018-07-13 22:41:14 【问题描述】:我正在使用 Keras 来训练网络。假设在 20 个 epoch 之后我想停止训练以检查一切是否正常,然后从第 21 个 epoch 继续。第二次调用model.fit
方法是否会重新初始化已经训练好的权重?
【问题讨论】:
【参考方案1】:第二次调用 model.fit 方法是否会重新初始化已经训练好的权重?
不,它将使用您的模型已有的权重并对其执行更新。这意味着您可以根据需要进行连续调用以适应并正确管理它。
这也是正确的,因为在 Keras 中,您还可以保存模型(使用 save and load_model 方法),将其加载回来,然后在其上调用 fit
。有关该检查的更多信息this 问题。
您的另一个选择是改用train_on_batch
method:
train_on_batch(self, x, y, sample_weight=None, class_weight=None)
对一批数据运行一次梯度更新。
这样我认为你可以在模型的更新之间有更多的控制,你可以检查训练是否一切正常,然后继续下一次梯度更新。
【讨论】:
以上是关于是否再次调用 model.fit 方法重新初始化已经训练的权重?的主要内容,如果未能解决你的问题,请参考以下文章
Python Tensorflow - 多次运行 model.fit 而不重新实例化模型