Python常用框架模型保存格式

TensorFlow框架

ckpt

tensorflow通过tf.train.Saver()保存模型得到了四个文件:checkpoint,检查点文件;model.ckpt.data-xxx 保存的是参数的值;model.ckpt.index,保存的是各个参数;model.ckpt.meta,保存的是图的结构;可通过saver.restore()恢复整个神经网络。
在这里插入图片描述

h5

HDF(Hierarchical Data Format层次数据格式)是一种设计用于存储和组织大量数据的文件格式,h5文件对于存储大量数据而言拥有极大的优势。最开始由美国国家超算中心研发,后来由一个非盈利组织HDF Group支持。HDF支持多种商业及非商业的软件平台,包括MATLAB、Java、Python、R和Julia等等,现在也提供了Spark。其版本包括了HDF4和现在大量用的HDF5,h5是HDF5文件格式的后缀。
h5文件中有两个核心的概念:组“group”和数据集“dataset”,一个h5文件就是 “dataset” 和 “group” 二合一的容器。
dataset :简单来讲类似数组组织形式的数据集合,像 numpy 数组一样工作,一个dataset即一个numpy.ndarray。具体的dataset可以是图像、表格,甚至是pdf文件和excel。
group:包含了其它 dataset(数组) 和 其它 group ,像字典一样工作。
一个h5文件被像linux文件系统一样被组织起来:dataset是文件,group是文件夹,它下面可以包含多个文件夹(group)和多个文件(dataset)。
在这里插入图片描述

在TensorFlow框架中,可使用model.save(filepath)函数,将Keras模型和权重保存在一个HDF5文件中,h5文件将包含:模型的结构,以便重构该模型;模型的权重;训练配置(损失函数,优化器等);优化器的状态,以便于从上次训练中断的地方开始。

pb

pb是protocol(协议) buffer(缓冲)的缩写。TensorFlow训练模型后存成的pb文件,是一种表示模型(神经网络)结构的二进制文件,不带有源代码,也一般无法映射成源代码。
pb具有语言独立性,可独立运行,封闭的序列化格式,任何语言都可以解析它,允许其他语言和深度学习框架读取、继续训练和迁移 TensorFlow 的模型;保存为 PB 文件时候,模型的变量都会变成固定的,导致模型的大小会大大减小,适合在手机端运行。

pbtxt

Tensorflow模型的graph结构可以保存为.pb文件或者.pbtxt文件,或者.meta文件,其中只有.pbtxt文件是可读的。

tflite

在桌面PC或是服务器上使用TensorFlow训练出来的模型文件,不能直接用在TFLite上运行,需要使用离线工具先转成.tflite文件。生成tflite模型主要是调用TFLiteConverter函数,直接生成tflite文件,不再通过pb文件转化。
具体说来,tflite文件的生成大致分为3步:

  1. 在算法训练的脚本中保存图模型文件(GraphDef)和变量文件(CheckPoint)。
  2. 利用freeze_graph工具生成frozen的graphdef文件。
  3. 利用toco(Tensorflow Optimizing COnverter)工具,生成最终的tflite文件。

pytorch框架

t7

pytorch保存数据的格式为.t7文件或者.pth文件,t7文件是沿用torch7中读取模型权重的方式。

.pt .pth .pkl

在pytorch进行模型保存的时候,一般有两种保存方式,一种是保存整个模型,另一种是只保存模型的参数。

torch.save(model.state_dict(), "my_model.pth")  # 只保存模型的参数
torch.save(model, "my_model.pth")  # 保存整个模型

我们经常会看到后缀名为.pt, .pth, .pkl的pytorch模型文件,这几种模型文件在格式上没有什么区别,只是后缀不同而已(仅此而已),在用torch.save()函数保存模型文件时,各人有不同的喜好,有些人喜欢用.pt后缀,有些人喜欢用.pth或.pkl.用相同的torch.save()语句保存出来的模型文件没有什么不同。
在pytorch官方的文档/代码里,有用.pt的,也有用.pth的。一般惯例是使用.pth,但是官方文档里貌似.pt更多,而且官方也不是很在意固定用一种。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值