标签: resuming-training

加载训练有素的Keras模型并继续训练

我想知道是否可以保存部分训练的Keras模型并在再次加载模型后继续训练.

这样做的原因是我将来会有更多的训练数据,我不想再次重新训练整个模型.

我正在使用的功能是:

#Partly train model
model.fit(first_training, first_classes, batch_size=32, nb_epoch=20)

#Save partly trained model
model.save('partly_trained.h5')

#Load partly trained model
from keras.models import load_model
model = load_model('partly_trained.h5')

#Continue training
model.fit(second_training, second_classes, batch_size=32, nb_epoch=20)
Run Code Online (Sandbox Code Playgroud)

编辑1:添加了完整的工作示例

使用10个时期之后的第一个数据集,最后一个纪元的损失将为0.0748,准确度为0.9863.

保存,删除和重新加载模型后,在第二个数据集上训练的模型的损失和准确性将分别为0.1711和0.9504.

这是由新的训练数据还是完全重新训练的模型引起的?

"""
Model by: http://machinelearningmastery.com/
"""
# load (downloaded if needed) the MNIST dataset
import numpy
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense
from keras.utils import np_utils
from keras.models import load_model
numpy.random.seed(7)

def baseline_model():
    model = Sequential()
    model.add(Dense(num_pixels, input_dim=num_pixels, init='normal', …
Run Code Online (Sandbox Code Playgroud)

python neural-network keras tensorflow resuming-training

71
推荐指数
3
解决办法
6万
查看次数

Keras - 管理历史记录

我正在训练 Keras 模型,保存它们,model.save()然后加载它们并恢复训练。

我想在每次训练后绘制整个训练历史记录,但model.fit_generator()只返回最后一次训练的历史记录。

我可以保存初始会话的历史记录并自己更新,但我想知道 Keras 中是否有管理训练历史记录的标准方法。

history1 = model.fit_generator(my_gen)
plot_history(history1)
model.save('my_model.h5')

# Some days afterwards...

model = load_model('my_model.h5')
history2 = model.fit_generator(my_gen)

# here I would like to reconstruct the full_training history
# including the info from history1 and history2
full_history = ???
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow resuming-training

5
推荐指数
1
解决办法
1251
查看次数