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机制需要能访问到原始类定义

解决方案一:

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

解决方案二:

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

相关推荐
深蓝AI4 分钟前
无头浏览器不必从 Chrome 改:Lightpanda 用 Zig 从零造,100 个页面只占 123MB 内存
人工智能·程序员
奈落242 小时前
AI辅助的另一面:从2026年国际AI安全报告的“故障”清单到国内专家的可靠性短板,自主行动的Agent为什么更难及时干预
人工智能·安全·agent·本地部署·ai 办公
火山引擎开发者社区4 小时前
eMudhra 证书失陷:容器用户最容易忽略的镜像信任链漏洞
人工智能
LabVIEW开发5 小时前
LabVIEW 机载 DIAL:每秒万次甲烷测量
人工智能·labview·labview知识·labview功能·labview程序
实名上网宋凯宣5 小时前
Django
后端·python·django
飞猫的边缘AI6 小时前
英特尔量子生意
人工智能·量子计算·边缘ai
深蓝AI6 小时前
桌面 Agent 缺的不是视觉:Vercel 开源 agent-desktop,用无障碍树 ref 替代截图坐标
人工智能·程序员
镜子AI6 小时前
镜子AI 技术复盘:三条自动化链路上的“停止条件“设计
运维·人工智能·自动化
向哆哆6 小时前
羊行为目标检测数据集:4类别、2,000张图像 | 目标检测
人工智能·yolo·目标检测·目标跟踪
如若1237 小时前
【论文复现】CoFailMed:从零复现医学图像分割的共享失败审计,含完整代码流程与科研绘图
人工智能·python