Tensorflow Keras模型在训练时保存检查点模型,为什么?

Tensorflow Keras模型在训练时保存检查点模型,为什么?,tensorflow,keras,Tensorflow,Keras,我想知道为什么我们需要在训练时保存模型? 在列车开始时只保存一次重量,然后在列车运行期间只保存重量,这还不够吗 我的意思是,模型在火车上没有改变,为什么需要这个布尔值 class ModelCheckpoint(Callback): ... save_weights_only: if True, then only the model's weights will be saved. ... 谢谢 这不是需要或要求,只是方便而已。在一个典型的DL/DS工作流中,您使用不同的配置训练了很多模型,

我想知道为什么我们需要在训练时保存模型? 在列车开始时只保存一次重量,然后在列车运行期间只保存重量,这还不够吗

我的意思是,模型在火车上没有改变,为什么需要这个布尔值

class ModelCheckpoint(Callback):
...
save_weights_only: if True, then only the model's weights will be saved.
...

谢谢

这不是需要或要求,只是方便而已。在一个典型的DL/DS工作流中,您使用不同的配置训练了很多模型,很容易丢失。也许您现在已经保存了最佳模型的权重,但您不记得使用了哪个模型配置。该信息不是重量的一部分,必须单独记录

然后Keras提供了一个简单的解决方案,将模式(不到10 KB)与权重一起存储,因此在丢失原始模型配置的情况下,它仍然保存在同一个HDF5文件中


也考虑在没有模型配置的情况下将模型权重发送给其他人的情况下,如何在没有模型的情况下加载权重?同样,这也很方便。

我理解,这就是为什么我在启动列车之前保存一次模型配置/属性和结构,我将澄清我的问题:如果足够在启动列车之前做一次,为什么每个历元都要做相同的操作?此布尔值是错误的编程,在使用Keras提供的多GPU训练功能时导致错误@StavBodik不,这没有错,这个错误与这个特定的选项无关。它是在并行模型存在之前引入的。将相同的数据保存到循环内的文件是错误的,如果这个布尔值不存在,一切都会更好,我承认这不是一个错误,但这在使用Keras提供的多GPU功能时会引起问题,因为它试图在并行系统的每个阶段保存模型。现在我不知道忽略这个布尔值并将其设置为永远为真是否安全。