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)
相关推荐
青 春 记 忆5 小时前
Dify Docker Compose 通用无损升级指南:从备份、双版本预演到切换与回滚
运维·人工智能·python·docker·容器
GlueNa2SiO35 小时前
03-Flask模板引擎Jinja2详解
笔记·python·flask
临沂GEO7 小时前
GEO搜索优化科普|正规地理位置流量运营入门指南
大数据·人工智能·python·流量运营
大模型码小白7 小时前
Spring AI Tool 实现自然语言操作 MySQL 数据库详解
服务器·开发语言·数据库·人工智能·python·mysql·spring
荷蒲9 小时前
【小白量化Qbuddy】利用AI学习中文Python
人工智能·python·学习
数据狐(Datafox)10 小时前
京东商品列表API技术解析与落地应用(含标准 JSON 示例)
java·大数据·前端·人工智能·python·数据分析·json
量化吞吐机10 小时前
2026年下半年手工交易规则走向量化表达,产品该先接住哪一步
人工智能·python
Metaphor69211 小时前
使用 Python 读取和删除 Excel 文件属性
python·excel
迷迭香yy12 小时前
Python构建转融券多空识别系统从接口到因子的全流程 IG50免费开源股票数据API接口
开发语言·python·开源
月光船幽幽12 小时前
真实即粗糙,光滑是伪造
人工智能·python