【问题标题】:Difference between h5py file and pickle file in saving a modelh5py文件和pickle文件保存模型的区别
【发布时间】:2019-05-01 14:18:58
【问题描述】:

我想获得模型保存的清晰图像。神经网络中有超参数和模型。

在我训练模型后,我想保存所有以使用它们而不重新训练模型。

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

如果是,pickle 文件的用途是什么?

【问题讨论】:

  • pickle文件有什么用处是什么意思?
  • 我的意思是它的目的。如果所有东西都可以通过h5保存,那么pickle文件的目的是什么
  • 有点像问如果XML存在,JSON的目的是什么?。 Keras 同时拥有save(path) and save_weights(path)
  • @Jeppe 你的意思是 Pickel 只节省重量吗?
  • @Ind 否。我认为 H5 通常用于大型数值数据,而 pickle 是通用对象序列化。 Keras 选择使用 H5 来存储权重、架构等。您阅读下面的链接和答案了吗? save(path) 存储所有内容。 save_weights(path) 只存储权重。两者都使用 h5。

标签: python python-3.x keras pickle h5py


【解决方案1】:

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

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

  • 模型的架构,允许重新创建模型
  • 模型的权重
  • 训练配置(损失、优化器)
  • 优化器的状态,允许在您停止的地方恢复训练。

它明确表示:

不建议使用 pickle 或 cPickle 来保存 Keras 模型。

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

【讨论】:

  • pickle文件中保存了哪些参数?
【解决方案2】:

你为什么不使用keras model.save('mymodel.h5')

Keras 文档:

不建议使用 pickle 或 cPickle 来保存 Keras 模型。

【讨论】:

    猜你喜欢
    • 2022-08-23
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    相关资源
    最近更新 更多