深度模型的保存及ckpt和pth的文件保存有什么区别?

文章介绍了在PyTorch中保存和加载模型的两种方法,包括仅保存权重参数和保存整个模型结构。还提到了不同格式的模型文件,如TensorFlow的ckpt格式,需要重新定义网络结构来恢复,而PyTorch的.pth文件则方便直接加载。此外,PB格式是一个语言独立的序列化格式,适合跨平台和移动端应用。
摘要由CSDN通过智能技术生成
    • 保存深度学习模型

当我们训练好模型之后,想要保存下来,以pytorch为例:

有两种选择:

保存方式1

torch.save(model.state_dict(), 'mymodel.pth')  # 只保存模型权重参数,不保存模型结构

model为训练好的模型,'mymodel.pth'为保存路径。

调用方式1

model = My_model(*args, **kwargs) #这里需要重新模型结构,My_model
model.load_state_dict(torch.load('mymodel.pth'))#这里根据模型结构,调用存储的模型参数
model.eval()

保存方式2

torch.save(model, mymodel.pth)  # 保存整个model的状态

调用方式2

model=torch.load(mymodel.pth)#这里已经不需要重构模型结构了,直接load就可以
model.eval()

我一般选用方式2,这样调用的时候,不需要再复现模型,然后才能在模型中调用参数

    • 不同格式的保存文件

ckpt格式:

一般情况下,用TensorFlow时保存模型都使用ckpt格式的模型文件;

  1. 依赖TensorFlow,只能在其框架下使用。

  1. 恢复模型之前需要再定义一遍网络结构,才能把变量的值恢复到网络中。

pytorch模型保存格式

即后缀名为.pt, .pth, .pkl的pytorch模型文件(它们并不是在格式上有区别,只是后缀不同而已)

pth文件是python中存储文件的常用格式;keras中则是使用.h5文件。

PB格式

优点:

  1. 它具有语言独立性,可独立运行,封闭的序列化格式,任何语言都可以解析它,它允许其他语言和深度学习框架读取、继续训练和迁移TensorFlow的模型。

  1. 它的主要使用场景是实现创建模型与使用模型的解耦,使得在推理过程中不用像ckpt格式那样重新定义一遍网络。

  1. 保存BP文件的时候,模型的变量都会变成固定的,导致模型的大小会大大较少,适合在手机端运行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.□

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值