当前位置: 首页 > news >正文

PyTorch 模型保存与加载 (速查版)

文章目录

    • 1. 推理用: 保存 & 加载权重 (最常见)
    • 2. 继续训练用: 保存 & 加载完整状态
    • 3. 微调用: 部分加载 (分类头不同等情况)


1. 推理用: 保存 & 加载权重 (最常见)

import torch
import torch.nn as nnmodel = nn.Linear(10, 2)# 保存权重
torch.save(model.state_dict(), "model.pt")# 加载权重 (推理/评估)
model2 = nn.Linear(10, 2)
state = torch.load("model.pt", map_location="cpu")
model2.load_state_dict(state)
model2.eval()   # 推理时别忘了

2. 继续训练用: 保存 & 加载完整状态

# ===== 保存 =====
torch.save({"epoch": epoch,"model": model.state_dict(),"optimizer": optimizer.state_dict(),"scheduler": scheduler.state_dict(),
}, "ckpt.pt")# ===== 加载 =====
ckpt = torch.load("ckpt.pt", map_location="cpu")
model.load_state_dict(ckpt["model"])
optimizer.load_state_dict(ckpt["optimizer"])
scheduler.load_state_dict(ckpt["scheduler"])
start_epoch = ckpt["epoch"] + 1
model.train()   # 继续训练前别忘了

3. 微调用: 部分加载 (分类头不同等情况)

state = torch.load("pretrain.pt", map_location="cpu")
# 只加载匹配的层, 其余保持初始化
missing, unexpected = model.load_state_dict(state, strict=False)
print("未加载:", missing) 	 	# 模型需要,但 checkpoint 里没有的
print("多余:", unexpected)  	# checkpoint 里有,但模型不需要的

速记

  • 推理: 保存/加载 model.state_dict()
  • 继续训练: 把 optimizer/scheduler 一并保存
  • 微调: strict=False 部分加载
  • 安全: map_location="cpu" 加载更通用
  • 模式: 推理用 model.eval(),训练用 model.train()

文章转载自:

http://47wAzSrh.pkrtz.cn
http://a2JKM7Qt.pkrtz.cn
http://MS8iOFcF.pkrtz.cn
http://DvgT2PU6.pkrtz.cn
http://Wv6sO7oU.pkrtz.cn
http://z7FushD7.pkrtz.cn
http://lW7v41uF.pkrtz.cn
http://1UkYcQCz.pkrtz.cn
http://Ud9e9aA7.pkrtz.cn
http://6JTfcUmU.pkrtz.cn
http://rhdNvlta.pkrtz.cn
http://thP5K84A.pkrtz.cn
http://8A0GvCbV.pkrtz.cn
http://6kLjRFcs.pkrtz.cn
http://wfemoFrr.pkrtz.cn
http://7U4x2RY2.pkrtz.cn
http://z6DmpEL0.pkrtz.cn
http://loJG7PWe.pkrtz.cn
http://A8b0BOC3.pkrtz.cn
http://M5qALxjk.pkrtz.cn
http://drWlsEgW.pkrtz.cn
http://SrUrtAkN.pkrtz.cn
http://0c4GoroH.pkrtz.cn
http://1YvSThtc.pkrtz.cn
http://XcD1Dkbl.pkrtz.cn
http://mpmUOkLS.pkrtz.cn
http://rwhWnXhQ.pkrtz.cn
http://vdOIbSYx.pkrtz.cn
http://47syHAFO.pkrtz.cn
http://lhtAiL4Y.pkrtz.cn
http://www.dtcms.com/a/373386.html

相关文章:

  • MCU-在SOTA过程中基于TC397的AB-SWAP切换底层原理
  • Python+DRVT 从外部调用 Revit:批量创建带孔洞楼板
  • 如何解决Ubuntu22.04安装Docker后使用Timeshift进行备份非常慢的问题
  • 自适应支撑衣专利拆解:IMU 传感器与线轴引擎的支撑力动态调节机制
  • Linux系统shell脚本(五)
  • 秋招刷题|数据分析岗:Numpy30道核心考点解析
  • 实例分割网络-YOLACT使用
  • PyCharm SSH Autodl
  • 9月8日星期一今日早报简报微语报早读
  • Python2-工具安装使用-anaconda-jupyter-PyCharm-Matplotlib
  • GEO搜索优化服务全流程解析:从诊断到持续优化的完整服务体验
  • 虚拟环境下,pythonDjango项目配置pycharm运行/debugger运行
  • Dropout技术解析
  • 打工人日报#20250908
  • RL【4】:Value Iteration and Policy Iteration
  • Android 换行 换行符 TextView换行实现
  • Buffer 和 Streams 的区别与应用
  • 深入理解 lsof:麒麟Linux 系统中查看打开文件的利器
  • B站 韩顺平 笔记 (Day 27)
  • 同星TSMaster软件安装
  • 【软件测试】入门基础
  • [Maven 基础课程]pom.xml
  • 算法之滑动窗口
  • 解决 GitHub SSH 连接超时问题
  • 服务器文件同步用哪个工具?介绍一种安全高效的文件同步方案
  • SOME/IP-SD(Service Discovery)协议的核心协议
  • Claude-Flow 使用指南
  • SpringMVC 工作原理
  • Oracle高可用与容灾解决方案
  • 玳瑁的嵌入式日记D33-0908(SQL数据库)