pth.tar的保存和读取

一、简介

在PyTorch中,.pt、.pth和.pth.tar都是保存训练好的模型的文件格式。主要区别在于:

  1. .pt是PyTorch1.6及以上版本中引入的保存格式,可以保存整个模型,包括模型结构、模型参数以及优化器状态等信息,是一个二进制文件。
  2. .pth是PyTorch旧版本中使用的模型文件格式,只保存了模型参数,没有保存模型和其他相关信息,是一个二进制文件。
  3. .pth.tar包括.pth文件以及其他信息,比如模型结构、优化器状态、超参数信息。

二、保存

使用torch.save进行保存,保存时传入保存的状态,名称

python 复制代码
def save_checkpoint(state, is_best, filename='checkpoint.pth.tar'):
    torch.save(state, filename)
    if is_best:
        shutil.copyfile(filename, 'model_best.pth.tar')

三、读取

1、通过torch.load()函数加载

python 复制代码
checkpoint_path = "/home/user/msh/Project/SimCLR-master_old/runs/Jan03_19-04-59_user-X10DRi/checkpoint_0100.pth.tar"
checkpoint = torch.load(checkpoint_path)
print(checkpoint.keys())

运行结果如下:

python 复制代码
dict_keys(['epoch', 'arch', 'state_dict', 'optimizer'])

2、epoch存放的是训练的轮次,arch存放的是模型的名称,optimizer存放是优化器具体的参数,

python 复制代码
epoch = checkpoint['epoch']
print(epoch)
arch = checkpoint['arch']
print(arch)
optimizer = checkpoint['optimizer']

运行结果:

python 复制代码
100
resnet18

3、state_dict.keys()存放的是模型每一层结构的名称

python 复制代码
state_dict = checkpoint['state_dict']
print(state_dict.keys())

4、使用:先初始化模型,创建一个对象,然后使用load_state_dict()函数加载参数

python 复制代码
model = ResNetSimCLR(arch,160)
model.load_state_dict(state_dict)
相关推荐
TechWayfarer14 小时前
PHP漏洞被利用,怎么揪出攻击IP?
开发语言·python·tcp/ip·网络安全·php
2601_9679801115 小时前
Python列表操作方法详解
python·数据类型·修改·列表操作·功能汇总
Patrick在香港16 小时前
台风在变少,来香港的没有
python·数据分析·香港·开放数据·热带气旋
qq_4069810316 小时前
大白话rust系列09 函数调用两次有什么错?
开发语言·python·rust
benchmark_cc16 小时前
QuantDash 安装成功后,如何验证 Python 环境可以正常导入 SDK?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
zh路西法17 小时前
【模型式强化学习】(二)PETS——从概率动力学模型到模型预测控制(MPC)
pytorch·python·强化学习·pe·mpc·ces·pets
Python自动化直播18 小时前
智能脚本批量管理拆开看:导入、导出、重写、试听
前端·python·ai·秒播
伤心的梧桐叶21 小时前
Picset与创客贴比等待时间,没做完的任务不能从表里消失
python
没有气的汽水21 小时前
一次 SQS 消费者静默退出的排查:问题最后竟然出在日志里
python
用户4500301402321 小时前
物业催缴系统为什么总在"冷却"这一步翻车:账期建模与规则命中的几个取舍
python