【Pytorch 第一讲】 如何加载预训练模型

一. 封装Pytorch的Model 加载pre-trianed Model

python 复制代码
import torch
import torchvision.models as models
from torchvision import transforms

# 1. 下载并加载预训练模型
model = models.resnet18(pretrained=False)  # 设置pretrained=False,表示不加载预训练权重

# 2. 下载预训练权重文件并加载
pretrained_dict = torch.load("path/to/resnet18-5c106cde.pth")  # 替换为实际的权重文件路径
model.load_state_dict(pretrained_dict)

# 3. 将模型设置为评估模式
model.eval()

# 4. 示例:将模型应用于输入数据
transform = transforms.Compose([
    transforms.Resize(256),
    transforms.CenterCrop(224),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])

input_data = transform(Image.open("path/to/your/image.jpg")).unsqueeze(0)  # 替换为实际的图像路径
output = model(input_data)
print(output)

二. 自定义Pytorch模型加载 Pre-trained Model

python 复制代码
# 导入 PyTorch
import torch

# 初始化你的模型
model = faster_vit_0_224()
python 复制代码
# 加载预训练权重
checkpoint = torch.load('/home/loads/vit_0_224_1k.pth.tar')

# 或者

checkpoint = torch.load('/home/loads/vit_0_224_1k.pth')

当完成这个加载以后, 可以考虑打开 checkpoint , 看看该模型保存时,包含哪些dict keys.

python 复制代码
print(checkpoint.keys())

结果: dict_keys(['epoch', 'arch', 'state_dict', 

'optimizer', 'version', 'args', 'amp_scaler', 'metric'])

根据上面的 state_dict, 可以接下来用来将权重赋予模型Model

python 复制代码
# 将权重赋值给模型

model.load_state_dict(checkpoint['state_dict'])

注意:如果 在checkpoint 的dict_keys 中不是"state_dict", 是"model_state_dict", 则需要把checkpoint"state_dict" 改成 checkpoinbt"model_state_dict" 读取所下载的的模型的权重,并将其赋予给模型。

相关推荐
IT_陈寒1 分钟前
Redis集群这个坑,差点让我通宵
前端·人工智能·后端
Elastic 中国社区官方博客2 分钟前
Elasticsearch:使用 AI Agent 来创建 workflow
大数据·运维·人工智能·elasticsearch·搜索引擎·自动化·全文检索
阿图灵14 分钟前
Agentic AI 架构入门(九):Agent 通信协议全景——ACP/A2A/AG-UI/MCP
人工智能·ui·架构·ai agent·智能体·mcp·agentic ai
用户83562907805123 分钟前
Python 自动化 Word 文本框处理:创建、定位、填充内容与管理
后端·python
阿里云大数据AI技术34 分钟前
AI Search+ES 9.4.X最佳实践:“更快、更准、更安全的企业级搜索引擎”"为AI Agent提供坚实底座”
人工智能·elasticsearch·agent
5757744 分钟前
AI搜索品牌曝光怎么做?从结构化数据到可引用内容的工程路径
人工智能
Hrain-AI1 小时前
2026 编码智能体三强对比:Trae/Qoder CN/CodeBuddy 安全护栏
人工智能·安全
叠层归一研究院1 小时前
AGI 系统(十一):二阶网络 — 二阶递归 × 多主体 (元符号网络)
开发语言·人工智能·算法·php·agi
alwaysrun1 小时前
AI Agent之执行中幻觉问题与应对方案
人工智能·agent
小O的算法实验室1 小时前
IEEE TII,学习为多目标深度学习生成偏好
人工智能·深度学习·学习