python-pytorch 关于torch.load()和torch.load_state_dict()

python-pytorch 关于torch.load和torch.load_state_dict

最近在使用pytorch训练和加载模型时遇到了一些很玄学的问题,研究了一下,总结如下:

1、关于模型保存和加载

1、如果保存时使用了torch.save( model, "model.pth"),那么模型加载时只能使用torch.load(),而不能使用torch.load_state_dict(torch.load(model_path)),如果强行使用torch.load_state_dict(torch.load(model_path)),会报Net对象没有copy属性。

python 复制代码
import torch

torch.save(model, 'model.pth')
model = torch.load('model.pth')

2、如果保存时使用了torch.save( model.state_dict(),"model.pth"),那么模型加载时只能使用model.load_state_dict(torch.Load("model.pth"))。

python 复制代码
import torch

torch.save(model.state_dict(), 'model.pth')

state_dict = torch.load('model.pth')
model.load_state_dict(state_dict)

3、两种方式在模型加载时,都需要引入或定义模型结构,且模型结构的名称需要与训练时一致,不能使用别名。

训练时:class Net,测试时:定义或加载仍然是class Net,而不能from ··· import Net as resNet。

python 复制代码
# 两个Net的结构不同
from model1 import Net
from model2 import Net

2、关于加载模型结构

关于在一个脚本中同时加载两个模型,在同时导入两个不同结构的Net的情况下,即使Net是同名,但加载的模型会自动找到自己训练时对应的那个结构。

相关推荐
烛阴6 小时前
简单入门Python装饰器
前端·python
好开心啊没烦恼6 小时前
Python 数据分析:numpy,说人话,说说数组维度。听故事学知识点怎么这么容易?
开发语言·人工智能·python·数据挖掘·数据分析·numpy
面朝大海,春不暖,花不开6 小时前
使用 Python 实现 ETL 流程:从文本文件提取到数据处理的全面指南
python·etl·原型模式
2301_805054567 小时前
Python训练营打卡Day59(2025.7.3)
开发语言·python
万千思绪8 小时前
【PyCharm 2025.1.2配置debug】
ide·python·pycharm
微风粼粼9 小时前
程序员在线接单
java·jvm·后端·python·eclipse·tomcat·dubbo
云天徽上9 小时前
【PaddleOCR】OCR表格识别数据集介绍,包含PubTabNet、好未来表格识别、WTW中文场景表格等数据,持续更新中......
python·ocr·文字识别·表格识别·paddleocr·pp-ocrv5
你怎么知道我是队长10 小时前
python-input内置函数
开发语言·python
叹一曲当时只道是寻常10 小时前
Python实现优雅的目录结构打印工具
python
hbwhmama11 小时前
python高级变量XIII
python