每10个时间段tensorflow.keras v2保存模型


10

我正在使用在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个时代之后。我该如何实现?

Answers:


5

使用tf.keras.callbacks.ModelCheckpointuse save_freq='epoch'并传递一个额外的参数period=10

尽管官方文档中没有对此进行记录,但这是这样做的方法(请注意,有记录表明您可以通过period,只是不解释其作用)。


我收到以下警告:WARNING:tensorflow:'period' argument is deprecated. Please use 'save_freq' to specify the frequency in number of samples seen.因此,我想此功能即将推出。在这种情况下,我该如何实现?
加布山山庄

2
我相信唯一的选择是计算每个时期的示例数,并将该整数传递给save_freq您想要的
两次

@bluesummers“每个时期的示例”这应该是我的批处理大小,对吗?
汤姆(Tom)

每个时期的示例是您要在检查点之间通过网络传递的样本数量 -这意味着,如果您有100个样本(样本!=批次,批次是一批样本),而您放入400个样本,则将每4个时期保存一次
bluesummers

1
我有与@NagabhushanSN询问的相同问题。我计算了每个时期的样本数,以计算样本数,之后我想保存模型,但它似乎不起作用。批处理大小= 64,对于测试用例,我每个时期使用10个步骤。如果我想每3个时间保存一次模型,则样本数为64 * 10 * 3 = 1920。我将其用于sav_freq,但输出显示模型已保存在第1阶段,第2阶段,第9阶段,第11阶段,第14阶段并仍在运行。无法理解。period选项似乎可以正常使用,但会提示它已被弃用。
beeprogrammer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.