module ‘torch.jit‘ has no attribute ‘unused‘问题

本文解决在Windows环境下使用PyTorch 1.2.0和torchvision 0.6.1时遇到的兼容性错误,通过升级PyTorch版本至1.4.0,并降级torchvision至0.5.0,最终成功解决了执行from torchvision import transforms时出现的问题。
部署运行你感兴趣的模型镜像

在执行from torchvision import transforms时出现了以下错误:

Traceback (most recent call last):
  File "D:/研究生/毕业设计/COVID19/COVID19_CT/conduct.py", line 8, in <module>
    from torchvision import transforms
  File "D:\Anaconda3\envs\pytorch_1.2_gpu\lib\site-packages\torchvision\__init__.py", line 3, in <module>
    from torchvision import models
  File "D:\Anaconda3\envs\pytorch_1.2_gpu\lib\site-packages\torchvision\models\__init__.py", line 5, in <module>
    from .inception import *
  File "D:\Anaconda3\envs\pytorch_1.2_gpu\lib\site-packages\torchvision\models\inception.py", line 63, in <module>
    class Inception3(nn.Module):
  File "D:\Anaconda3\envs\pytorch_1.2_gpu\lib\site-packages\torchvision\models\inception.py", line 180, in Inception3
    @torch.jit.unused
AttributeError: module 'torch.jit' has no attribute 'unused'

笔者本机环境:

  • windows7系统
  • torch==1.2.0+cu92
  • torchvision== 0.6.1+cu92

 

解决方法:

安装新版torch。原来安装的是pytorch1.2.0,需要更新为pytorch1.4.0及以上版本。

登录https://download.pytorch.org/whl/torch_stable.html,选择cu92/torch-1.4.0%2Bcu92-cp37-cp37m-win_amd64.whl(具体版本根据实际情况进行选择,笔者的环境对应这个版本) 。

 

这次的本机环境为:

  • windows7系统
  • torch==1.4.0+cu92
  • torchvision== 0.6.1+cu92

在执行from torchvision import transforms时还是有错误:

Traceback (most recent call last):
  File "D:/研究生/毕业设计/COVID19/COVID19_CT/conduct.py", line 8, in <module>
    from torchvision import transforms
  File "D:\Anaconda3\envs\pytorch_1.4_gpu\lib\site-packages\torchvision\__init__.py", line 3, in <module>
    from torchvision import models
  File "D:\Anaconda3\envs\pytorch_1.4_gpu\lib\site-packages\torchvision\models\__init__.py", line 12, in <module>
    from . import detection
  File "D:\Anaconda3\envs\pytorch_1.4_gpu\lib\site-packages\torchvision\models\detection\__init__.py", line 1, in <module>
    from .faster_rcnn import *
  File "D:\Anaconda3\envs\pytorch_1.4_gpu\lib\site-packages\torchvision\models\detection\faster_rcnn.py", line 7, in <module>
    from torchvision.ops import misc as misc_nn_ops
  File "D:\Anaconda3\envs\pytorch_1.4_gpu\lib\site-packages\torchvision\ops\__init__.py", line 13, in <module>
    _register_custom_op()
  File "D:\Anaconda3\envs\pytorch_1.4_gpu\lib\site-packages\torchvision\ops\_register_onnx_ops.py", line 51, in _register_custom_op
    register_custom_op_symbolic('torchvision::_new_empty_tensor_op', new_empty_tensor_op, _onnx_opset_version)
  File "D:\Anaconda3\envs\pytorch_1.4_gpu\lib\site-packages\torch\onnx\__init__.py", line 200, in register_custom_op_symbolic
    return utils.register_custom_op_symbolic(symbolic_name, symbolic_fn, opset_version)
  File "D:\Anaconda3\envs\pytorch_1.4_gpu\lib\site-packages\torch\onnx\utils.py", line 793, in register_custom_op_symbolic
    .format(symbolic_name))
RuntimeError: Failed to register operator torchvision::_new_empty_tensor_op.                            The symbolic name must match the format Domain::Name,                            and sould start with a letter and contain only                            alphanumerical characters

Process finished with exit code 1

解决方法:

安装旧版torchvision。将原来安装的torchvision-0.6.1通过pip uninstall卸载,安装torchvision-0.5.0。

登录https://download.pytorch.org/whl/torch_stable.html,选择torchvision-0.5.0-cp37-cp37m-win_amd64.whl

这次就没有问题了。

 

您可能感兴趣的与本文相关的镜像

PyTorch 2.9

PyTorch 2.9

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

在使用 PyTorch 时,有时会遇到报错信息:`module torch.backends has no attribute mps`。这一错误通常与 PyTorch 版本、操作系统支持以及设备配置有关。 ### 原因分析 1. **PyTorch 版本过低** `torch.backends.mps` 是在 PyTorch **1.12.0** 版本中正式引入的,用于支持 Apple Silicon(如 M1/M2 芯片)上的 Metal Performance Shaders(MPS)加速计算。如果当前安装的 PyTorch 版本低于该版本,则无法访问 `mps` 属性[^1]。 2. **操作系统限制** `torch.backends.mps` 仅在 macOS 系统上可用,且要求 macOS 版本为 **12.0(Monterey)或更高**。若使用的是 Windows 或 Linux 系统,或 macOS 版本过低,也会导致该错误。 3. **硬件限制** MPS 后端仅适用于搭载 Apple Silicon(M1、M2 及后续芯片)的 Mac 设备。若使用的是 Intel 架构的 Mac 或其他平台,则无法使用 MPS 支持。 ### 解决方法 #### 1. 更新 PyTorch 到支持 MPS 的版本 确保安装的是 **PyTorch ≥ 1.12.0**。可以通过以下命令更新 PyTorch: ```bash pip install --upgrade torch ``` 安装完成后,可以使用以下代码验证是否成功启用 MPS: ```python import torch if hasattr(torch.backends, 'mps'): print("MPS is available.") else: print("MPS is not available.") ``` #### 2. 检查操作系统版本 确保运行环境为 macOS 12.0 或更高版本。可以通过以下命令查看当前系统版本: ```bash sw_vers | grep "Software Version" ``` 若版本低于 12.0,则需要升级 macOS 系统以启用 MPS 支持。 #### 3. 验证设备是否为 Apple Silicon(M1/M2) MPS 后端仅适用于搭载 Apple Silicon 的设备。可以通过以下命令确认设备型号: ```bash uname -m ``` 若输出为 `arm64`,则表示设备为 Apple Silicon,支持 MPS。 #### 4. 使用替代设备后端 如果当前环境不支持 MPS,可以回退使用 CPU 或 CUDA(若具备 NVIDIA GPU)作为计算设备: ```python device = torch.device("mps" if hasattr(torch.backends, 'mps') and torch.backends.mps.is_available() else "cuda" if torch.cuda.is_available() else "cpu") print(f"Using device: {device}") ``` #### 5. 检查虚拟环境配置 有时,虚拟环境中可能未正确安装支持 MPS 的 PyTorch 版本。可以尝试在全局环境中安装或切换虚拟环境以确认问题是否与环境配置有关。 --- ### 示例代码:设备选择逻辑 ```python import torch # 自动选择可用设备 def get_device(): if hasattr(torch.backends, 'mps') and torch.backends.mps.is_available(): return torch.device("mps") elif torch.cuda.is_available(): return torch.device("cuda") else: return torch.device("cpu") device = get_device() print(f"Current device: {device}") ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝天居士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值