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

解决torchvision.models模块不存在ViT_B_16_Weights属性的报错问题

解决torchvision.models中找不到ViT_B_16_Weights的AttributeError问题

错误原因

你的torchvision版本过低,ViT系列模型(包括ViT_B_16_Weights权重类和vit_b_16模型构建函数)是在torchvision 0.13.0版本才正式纳入官方库的,旧版本不存在这些属性。另外原代码中vit_B_16的写法存在大小写错误,正确应为小写的vit_b_16。

解决方法

1. 升级torchvision到兼容版本

torch和torchvision版本需严格匹配,避免出现兼容性问题:

  • 使用pip升级:
    # 升级到最新稳定版(自动匹配当前torch版本)
    pip install --upgrade torchvision
    # 或指定具体兼容版本(例如torch 2.0对应torchvision 0.15.0)
    pip install torchvision==0.15.0 --force-reinstall
    
  • 使用conda升级:
    conda update torchvision
    # 或指定版本
    conda install torchvision=0.15.0
    

升级后验证版本:

import torchvision
print(torchvision.__version__)  # 输出需≥0.13.0

修正后的代码:

import torch
import torchvision

from torch import nn
from torchvision import transforms

device = "cuda" if torch.cuda.is_available() else "cpu"

pretrained_vit_weights = torchvision.models.ViT_B_16_Weights.DEFAULT 
pretrained_vit = torchvision.models.vit_b_16(weights=pretrained_vit_weights).to(device)

2. 无法升级时使用第三方实现

如果受环境限制无法升级torchvision,可以使用timm库(专门的视觉模型库)来调用ViT:

pip install timm

调用代码示例:

import timm
import torch

device = "cuda" if torch.cuda.is_available() else "cpu"
pretrained_vit = timm.create_model("vit_base_patch16_224", pretrained=True).to(device)

内容的提问来源于stack exchange,提问作者Pranav Dubal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:12:23