深度学习No module named ‘torchvision.transforms.functional_tensor‘问题解决

问题

在进行深度学习训练过程中出现ModuleNotFoundError: No module named 'torchvision.transforms.functional_tensor'报错,多方查阅资料后得到了解决方案。

关于我的环境:CUDA==12.1 torch==2.4.1 GPU==4090D

原先进行深度学习用的CUDA11.3,torch1.2.1,但是在训练时出现nvrtc: error: invalid value for --gpu-architecture (-arch)报错,原因是GPU架构太新啥的,需要更新CUDA和Torch,原先没有ModuleNotFoundError: No module named 'torchvision.transforms.functional_tensor'这个报错,在更新完后才出现报错。

报错后尝试过重新安装Torch,CUDA(GPT说是环境不匹配),均不能解决问题

原因及解决方案

出现ModuleNotFoundError: No module named 'torchvision.transforms.functional_tensor'的原因大概是原先的“名字”改了,但是安装的basicsr包中的名字没有改,所以会报错。

只要在miniconda3/lib/python3.12/site-packages/basicsr/data/degradations.py文件中第8行将
from torchvision.transforms.functional_tensor import rgb_to_grayscale
改成from torchvision.transforms._functional_tensor import rgb_to_grayscale
或者改成from torchvision.transforms.functional import rgb_to_grayscale
均能够解决问题。

yolo11训练出现以下报错(.conda) root@autodl-container-09e14a8d51-fa0929e9:~/VOC# /root/VOC/ultralytics-yolo11-main/.conda/bin/python /root/VOC/123/YOLOv11-haze/train.py Traceback (most recent call last): File "/root/VOC/123/YOLOv11-haze/train.py", line 3, in <module> from ultralytics import YOLO File "/root/VOC/123/YOLOv11-haze/ultralytics/__init__.py", line 10, in <module> from ultralytics.data.explorer.explorer import Explorer File "/root/VOC/123/YOLOv11-haze/ultralytics/data/__init__.py", line 3, in <module> from .base import BaseDataset File "/root/VOC/123/YOLOv11-haze/ultralytics/data/base.py", line 17, in <module> from ultralytics.data.utils import FORMATS_HELP_MSG, HELP_URL, IMG_FORMATS File "/root/VOC/123/YOLOv11-haze/ultralytics/data/utils.py", line 19, in <module> from ultralytics.nn.autobackend import check_class_names File "/root/VOC/123/YOLOv11-haze/ultralytics/nn/__init__.py", line 3, in <module> from .tasks import ( File "/root/VOC/123/YOLOv11-haze/ultralytics/nn/tasks.py", line 2, in <module> from .Addmodules import * File "/root/VOC/123/YOLOv11-haze/ultralytics/nn/Addmodules/__init__.py", line 102, in <module> from .MAB import * File "/root/VOC/123/YOLOv11-haze/ultralytics/nn/Addmodules/MAB.py", line 8, in <module> from basicsr.utils.registry import ARCH_REGISTRY File "/root/VOC/ultralytics-yolo11-main/.conda/lib/python3.12/site-packages/basicsr/__init__.py", line 4, in <module> from .data import * File "/root/VOC/ultralytics-yolo11-main/.conda/lib/python3.12/site-packages/basicsr/data/__init__.py", line 22, in <module> _dataset_modules = [importlib.import_module(f'basicsr.data.{file_name}') for file_name in dataset_filenames] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/VOC/ultralytics-yolo11-main/.conda/lib/python3.12/importlib/__init__.py", line 90, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/VOC/ultralytics-yolo11-main/.conda/lib/python3.12/site-packages/basicsr/data/realesrgan_dataset.py", line 11, in <module> from basicsr.data.degradations import circular_lowpass_kernel, random_mixed_kernels File "/root/VOC/ultralytics-yolo11-main/.conda/lib/python3.12/site-packages/basicsr/data/degradations.py", line 8, in <module> from torchvision.transforms.functional_tensor import rgb_to_grayscale ModuleNotFoundError: No module named 'torchvision.transforms.functional_tensor'
03-15
<think>嗯,用户在使用YOLOv11训练时遇到了一个错误,提示找不到torchvision.transforms.functional_tensor模块。我需要仔细看一下报错信息。首先,错误发生在degradations.py的第8行,导入rgb_to_grayscale时找不到functional_tensor。我记得torchvision的版本更新可能会引起模块路径的变化。 可能的原因是torchvision版本过高或过低,导致某些函数的位置发生了变化。比如,在较新的torchvision版本中,functional_tensor可能已经被移到其他地方或者弃用了。用户可能安装了不兼容的torch和torchvision版本组合。 接下来,我需要确认functional_tensor在哪些torchvision版本中存在。查阅资料发现,在torchvision 0.10.0之后,一些模块被重构,可能移除了functional_tensor。而用户代码中导入的rgb_to_grayscale现在可能在torchvision.transforms.functional中直接提供,不需要通过functional_tensor解决方案应该是安装兼容的torch和torchvision版本。例如,PyTorch 1.7.1对应torchvision 0.8.2,或者更高版本但需要确认模块是否存在。另外,用户可能使用了最新版的torchvision,导致兼容性问题。建议用户降级torchvision到与当前PyTorch版本兼容的版本,或者升级PyTorch和torchvision到稳定搭配的版本。 另外,用户的环境是通过conda管理的,可能需要检查是否安装了正确版本的依赖。用户可能误装了不同版本的库,或者环境配置有误。建议用户创建一个新的虚拟环境,安装指定版本的PyTorch和torchvision,然后重新运行程序。 总结步骤:1. 检查当前安装的torch和torchvision版本。2. 根据官方推荐的兼容版本进行安装。3. 验证问题是否解决。4. 如果问题依旧,检查代码是否有其他依赖问题,或者联系开发者获取支持。</think>这个错误是由于`torchvision`版本不兼容导致的。以下是逐步排查和解决方案: --- ### **1. 错误原因分析** ``` ModuleNotFoundError: No module named 'torchvision.transforms.functional_tensor' ``` - 在新版`torchvision`中(>=0.10),`functional_tensor`模块已被弃用或重构。 - 你使用的代码(YOLOv11或依赖的`basicsr`库)可能基于旧版`torchvision`编写。 --- ### **2. 解决方案** #### **(1) 降低torchvision版本** 尝试安装兼容的`torch`和`torchvision`组合。推荐以下两种方式: **方案一:安装PyTorch 1.7.1 + torchvision 0.8.2** ```bash pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 -f https://download.pytorch.org/whl/torch_stable.html ``` **方案二:安装PyTorch 2.0.0 + torchvision 0.15.1** ```bash pip install torch==2.0.0 torchvision==0.15.1 ``` #### **(2) 验证安装** 检查版本是否匹配: ```python import torch, torchvision print(torch.__version__) # 应输出 1.7.1 或 2.0.0 print(torchvision.__version__) # 应输出 0.8.2 或 0.15.1 ``` --- ### **3. 附加检查** 如果问题仍未解决: 1. **检查虚拟环境**:确认激活了正确的conda环境。 2. **更新代码库**:确保YOLOv11和`basicsr`库是最新版本。 3. **依赖完整性**: ```bash pip install -r requirements.txt # 重新安装项目依赖 ``` --- ### **4. 补充说明** 如果使用**CUDA 11.x**,需确保PyTorch版本与CUDA驱动匹配。可通过[PyTorch官网](https://pytorch.org/get-started/previous-versions/)查询历史版本命令。 --- ### **总结** 版本不匹配是此类问题的常见原因。建议优先尝试降低`torchvision`版本,并确保所有依赖库版本一致。如果问题复杂,可提供完整的`pip list`输出进一步分析。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值