我正在使用 Keras 来训练网络。假设在 20 个 epoch 后,我想停止训练以检查是否一切正常,然后从第 21 个 epoch 继续。第二次调用
model.fit
方法是否会重新初始化已经训练好的权重?
不,它将使用模型预先存在的权重并对它们执行更新。这意味着您可以根据需要进行连续调用以适应并正确管理它。
这也是正确的,因为在 Keras 中,您还可以保存模型(使用 save 和 load_model 方法)、加载它,然后对其调用
fit
。有关该问题的更多信息,请检查this问题。
您获得的另一个选择是使用
train_on_batch
方法:
train_on_batch(自身,x,y,sample_weight =无,class_weight =无)
对单批数据运行单个梯度更新。
通过这种方式,我认为您可以在模型更新之间拥有更多控制权,您可以检查训练是否一切正常,然后继续下一个梯度更新。