Nag*_*S N 5 python deep-learning keras tf.keras tensorflow2.0
我正在使用在tensorflow v2中定义为子模块的keras。我正在使用fit_generator()
方法训练模型。我想每10个时间保存一次模型。我该如何实现?
在Keras(不是tf的子模块)中,我可以给出ModelCheckpoint(model_savepath,period=10)
。但在TF V2,他们已经改变了这ModelCheckpoint(model_savepath, save_freq)
地方save_freq
可'epoch'
在这种情况下,模型保存每个时间段。如果save_freq
为整数,则在处理了许多样本后将保存模型。但我希望在10个时代之后。我该如何实现?
blu*_*ers 17
使用tf.keras.callbacks.ModelCheckpoint
usesave_freq='epoch'
并传递一个额外的参数period=10
。
虽然这在官方文档中没有记录,但这就是这样做的方法(注意它记录了你可以通过period
,只是没有解释它的作用)。
小智 5
显式计算每个时期的批次数量对我有用。
BATCH_SIZE = 20
STEPS_PER_EPOCH = train_labels.size / BATCH_SIZE
SAVE_PERIOD = 10
# Create a callback that saves the model's weights every 10 epochs
cp_callback = tf.keras.callbacks.ModelCheckpoint(
filepath=checkpoint_path,
verbose=1,
save_weights_only=True,
save_freq= int(SAVE_PERIOD * STEPS_PER_EPOCH))
# Train the model with the new callback
model.fit(train_images,
train_labels,
batch_size=BATCH_SIZE,
steps_per_epoch=STEPS_PER_EPOCH,
epochs=50,
callbacks=[cp_callback],
validation_data=(test_images,test_labels),
verbose=0)
Run Code Online (Sandbox Code Playgroud)