碎片篇——Pytorch模型 .pt, .pth, .pkl的区别及模型不同保存加载方式的区别

本文详细解析了PyTorch中.pt,.pth,.pkl模型文件的区别,实际上它们在格式上并无不同,仅是个人偏好选择。并深入探讨了两种模型保存与加载方式:仅保存模型参数和保存整个模型,分析了各自的优缺点及适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Pytorch模型 .pt, .pth, .pkl的区别

后缀名为.pt, .pth, .pkl的pytorch模型文件,在格式上其实没有区别,只是后缀不同而已(仅此而已)!
在用torch.save()函数保存模型文件时,各人有不同的喜好,有些人喜欢用.pt后缀,有些人喜欢用.pth或.pkl.用相同的torch.save()语句保存出来的模型文件没有什么不同。

2. 模型不同保存加载方式的区别

模型的保存和加载有两种方式:

(1) 仅仅保存和加载模型参数
# 保存
torch.save(the_model.state_dict(), PATH='mymodel.pth')		#只保存模型权重参数,不保存模型结构

# 调用
the_model = TheModelClass(*args, **kwargs)					#这里需要重新模型结构,TheModelClass
the_model.load_state_dict(torch.load('mymodel.pth'))		#这里根据模型结构,调用存储的模型参数
(2) 保存和加载整个模型
# 保存
torch.save(the_model, PATH)									#保存整个model的状态

# 调用
the_model = torch.load(PATH)								#这里已经不需要重构模型结构了,直接load就可以

第一种方式需要自己定义网络,并且其中的参数名称与结构要与保存的模型中的一致(可以是部分网络,比如只使用VGG的前几层),相对灵活,便于对网络进行修改。第二种方式则无需自定义网络,保存时已把网络结构保存,比较死板,不能调整网络结构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值