Keras:如何在一次训练中节省模型重量?

2024-05-15 14:51:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Keras训练CNN。每一个时代大约需要18个小时。我需要每半小时保存一次模型权重,因为我不能连续运行18个小时。在

我尝试使用checkpoint和period = 0.0125保存模型权重。我认为这样可以在每100个训练样本中节省模型权重(假设训练样本总数=8000)

cp_callback = tf.keras.callbacks.ModelCheckpoint(checkpoint_path, verbose=1, save_weights_only=True,period=0.0125)

model.fit_generator(
    training_set,
    steps_per_epoch=8400,
    epochs=25,
    callbacks = [cp_callback],
    validation_data=test_set,
    validation_steps=2165)

Tags: 模型callbackstepscpcnnkerasperiodvalidation
1条回答
网友
1楼 · 发布于 2024-05-15 14:51:03

ModelCheckpoint在每个epoch之后保存模型。周期是不在纪元内的两个纪元之间的间隔。在

一个可行的解决方案是编写您自己的自定义回调,它可以在每个批处理结束或开始时节省权重。在

class myCallback(keras.callbacks.Callback):
def on_batch_end(self, batch,logs={}):
    self.model.save_weights('D:/downloads/model_batch'+str(batch)+'.hdf5')

callbacks1 = myCallback()

根据您的问题,您可以应用任何条件,如何时保存、保存什么等。希望这有帮助

相关问题 更多 >