我有一个使用 model.fit()
训练的模型,并使用 model.save()
将其保存在物理文件中。现在,我有另一个数据集,我想使用保存的模型恢复训练。但是,我发现每次 fit()
调用都被视为一次新的训练。这意味着,它正在重新初始化之前生成并保存的权重。
当我使用 epochs 0 调用 fit()
时,我没有看到权重重置问题。但是,我绝对想尝试使用 epochs > 0。
我在这里遗漏了什么,还是 Keras 的问题。
Keras 版本:2.0.3
谢谢。
最佳答案
实际上 - 调用 fit
的情况如下:
权重不会重置 - 您的模型将具有与调用
fit
之前完全相同的权重 - 当然,直到优化算法不会在期间更改它们第一批。模型状态未重置 - 这是您可能遇到的情况。模型隐藏状态(尤其是在 rnn 情况下)被重置。这是唯一改变的事情。如果您还想保留这些值(尤其是优化器状态在许多情况下至关重要) - 您可以使用
train_on_batch
方法,它根本不会影响模型的任何状态。优化器状态不会重置 - 一次又一次调用 fit() 不会重置优化器状态。引用:https://github.com/keras-team/keras/issues/454#issuecomment-125644222
关于machine-learning - keras.fit() 重新初始化权重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43455651/