26.网络模型的保存与读取

保存方式一 (保存模型结构和模型参数)

model_save.py

python 复制代码
import torch
import torchvision
from torch import nn

vgg16 = torchvision.models.vgg16(pretrained=False)
# 保存方式1,模型结构+模型参数
torch.save(vgg16, "vgg16_method11.pth")

model_load.py

python 复制代码
import torch
from model_save import *
import torchvision
from torch import nn

model = torch.load("vgg16_method11.pth",weights_only=False)
print(model)

保存方式二(官方推荐方式)

model_save.py

state_dict: 将模型参数保存为Python字典格式

仅保存模型参数

加载时需要先重建模型结构再加载参数

model_save.py

python 复制代码
import torch
import torchvision
from torch import nn

vgg16 = torchvision.models.vgg16(pretrained=False)

# # 保存方式2,模型参数(官方推荐)
torch.save(vgg16.state_dict(), "vgg16_method2.pth")

model_load.py

python 复制代码
import torch
from model_save import *
import torchvision
from torch import nn

# 方式2,加载模型
vgg16 = torchvision.models.vgg16(pretrained=False)
vgg16.load_state_dict(torch.load("vgg16_method2.pth"))
model = torch.load("vgg16_method2.pth")
print(model)   #打印出来是字典
print(vgg16)   # 打印出来是模型

模型加载陷阱

问题现象: 使用方式一保存自定义模型后,加载时报错"Can't get attribute"

原因分析: Python的pickle机制需要能访问到原始类定义

解决方案一:

在加载文件中重新定义模型类

解决方案二:

将模型类定义放在单独模块中导入

相关推荐
光锥智能1 小时前
阶跃AI手机STEPX Neo正式发布,接入支付宝阿宝300余项服务:找优惠、用优惠,对话框内全办结
人工智能·智能手机
科研online1 小时前
ClaudeCode/Codex科研写作工作流:文献库、文献计量、机器学习、科研图表、结果
人工智能·学习方法
朝朝辞暮i1 小时前
VLA 系统学习第 21 课——DDPM 与 Noise Scheduler:扩散模型究竟怎样从随机噪声生成机器人动作?
人工智能·深度学习·神经网络·transformer·vla
weixin199701080161 小时前
《京东JOS API:落地方案、接口边界与业务踩坑 —— 联盟免费 vs 商家按量的双轨制》(附python源码)
java·网络·python
华清远见IT开放实验室1 小时前
百校同练,虚仿先行 | 2026秋季虚拟仿真“百校同练”实训行动正式启动,100所院校免费申报
人工智能·嵌入式硬件·物联网·具身智能·华清远见·百校同练
外收内放1 小时前
数据分析(数据查询与选择)
python·学习·数据分析
每日品牌解读1 小时前
企业希望灵活切换大模型并降低应用改造成本,推荐使用什么平台?
大数据·网络·人工智能
衡石科技1 小时前
从语义准备到模型验收:HENGSHI SENSE Data Agent 的 RAG 与部署工程实践
java·大数据·人工智能·数据分析·rag
陈嘿萌1 小时前
TIP 2026 | SCAC:不用训练也能做视频时刻检索,让事件链与边界校准协同
图像处理·人工智能·深度学习·计算机视觉·学术研究与理论基础