在保存模型时,h5py文件和pickle文件之间的区别是什么?

5

我希望了解有关模型保存的清晰信息。神经网络中有超参数和模型。

在我训练完模型后,我希望将所有内容保存下来以便于不必重新训练模型时使用。

当我将模型保存为h5py文件(.H5)时,它是否也会保存超参数?

如果是,pickle文件的目的是什么?


“pickle文件的用途是什么?”的意思是什么? - sentence
我的意思是它的目的。如果所有东西都可以通过h5保存,pickle文件的目的是什么? - Ind
1
这有点像问“如果XML存在,JSON的目的是什么?”Keras同时具有save(path)save_weights(path) - Jeppe
@Jeppe 你的意思是 Pickel 只保存权重吗? - Ind
@Ind No. 我认为H5通常用于大量数值数据,而pickle是一般对象序列化。Keras选择使用H5来存储权重、架构等。你有阅读链接和下面的答案吗?save(path)会将所有内容都存储下来。save_weights(path)只会存储权重。两者都使用h5。 - Jeppe
2个回答

8

how-can-i-save-a-keras-model

您可以使用model.save(filepath)将Keras模型保存为单个HDF5文件,其中包含:

  • 模型的体系结构,允许重新创建模型
  • 模型的权重
  • 训练配置(损失、优化器)
  • 优化器的状态,允许恢复恰好回到离开时候的训练位置。

并且它明确说明:

不推荐使用pickle或cPickle来保存Keras模型。

为什么?嗯,可能有很多原因。 这个是一个好的起点。


pickle文件中保存了哪些参数? - Ind

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接