You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch 1.13.0环境下如何下载ResNet101模型文件并正常使用?

解决ResNet101本地权重加载后无法调用模型方法的问题

你的问题核心是:手动下载的.pth文件只是模型的权重参数字典(OrderedDict类型),而非完整的模型实例,因此无法直接调用eval()这类模型方法。只需按照「创建模型结构→加载权重字典」的步骤操作即可解决:

步骤1:创建ResNet101模型结构

先初始化一个不带预训练权重的ResNet101模型框架:

from torchvision.models import resnet101
# 创建空的ResNet101模型结构,weights=None表示不自动加载预训练权重
model = resnet101(weights=None)

步骤2:加载本地权重并映射到模型

用torch.load读取本地权重文件,再通过load_state_dict方法将权重注入模型结构:

from pathlib import Path
import torch

model_path = Path("PATH/resnet101.pth")  # 替换为你的权重文件实际路径
# 加载本地权重字典
state_dict = torch.load(model_path)
# 将权重参数映射到模型
model.load_state_dict(state_dict)

步骤3:正常使用模型

此时model已经是完整的ResNet101实例,可正常调用模型方法:

model.eval()  # 不会再触发AttributeError

# 示例推理代码(可选)
import torchvision.transforms as transforms
from PIL import Image

# 定义符合ResNet输入要求的图像预处理流程
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])
])

img = Image.open("test_image.jpg")  # 替换为你的测试图像路径
input_tensor = transform(img).unsqueeze(0)  # 添加batch维度

with torch.no_grad():  # 推理阶段关闭梯度计算以节省资源
    output = model(input_tensor)

内容的提问来源于stack exchange,提问作者Ruby Midford

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:42:39