解决:配置mabayolo模型cd selective_scan && pip install . && cd ..报错 以及 torch.cuda.is_available()结果False

根据此大佬学习改变,大佬博客链接

基础配置:
windows10
安装cuda11.8点击此链接
安装支持cuda11.8的cudnn
安装anaconda,点击下载anaconda

一、环境配置

1.官方指定配置文档(README),此文档在自己电脑中配置可能会存在问题。

conda create -n mambayolo -y python=3.11
conda activate mambayolo
pip3 install torch===2.3.0 torchvision torchaudio
pip install seaborn thop timm einops
cd selective_scan && pip install . && cd ..
pip install -v -e .

2.笔者在此做了修改,在笔者电脑已经测试成功。修改如下:

# 注意安装Python的版本改为3.10
conda create -n mambayolo -y python=3.10
conda activate mambayolo
#注意安装Torch指定支持cuda(也就是支持GPU),默认情况下安装仅仅支持CPU。而且不可以使用镜像安装,国内镜像无法指定安装GPU版本的Torch。使用国内镜像安装默认下载支持cpu,检验Torch支持CPU还是CPU可以看后面教程。如果命令下载不了显示网络问题,可以手动去https://download.pytorch.org/whl/cu118网站下载指定版本,再使用命令安装。
pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118
pip install seaborn thop timm einops
pip install setuptools==68.2.2
conda install packaging
#在Mamba-Yolo-main目录下运行
pip install -v -e .
#最后一步
手动将下载的selective_scan_cuda.cp310-win_amd64.pyd文件手动复制到创建的虚拟环境mambayolo的DLLs文件下。(下载方式见下方)

在这里插入图片描述
没有对应Windows的库,所以需要对selective_scan的源码进行一些修改(以适应Windows的编译环境),然后使用源码编译和安装,这一步比较困难(Window 下Mamba 环境安装踩坑问题汇总及解决方法 (无需绕过selective_scan_cuda)_windows安装mamba-优快云博客),建议直接使用大佬改好编译好的whl文件,这个文件只适用于torch2.1。可以联系大佬添加微信进行下载whl文件,文章中有大佬微信。

检验Torch支持CPU还是CPU可以看后面教程。

#虚拟环境下
python
#此时进入python编辑器
import torch #不报错,不输出表示torch安装成功
print(torch.__version__) #检查torch版本并且是否支持gpu 
#支持GPU输出,例如:torch==2.1.1 + cu118
#支持CPU输出,例如:torch==2.1.1 + cpu

#检查torch与cuda版本是否兼容
print(torch.cuda.is_available())
#兼容输出:True  不兼容输出:False

二、项目配置
打开pycharm
在这里插入图片描述
在这里插入图片描述
参数:

–task
train
–data
ultralytics/cfg/datasets/coco.yaml
–config
ultralytics/cfg/models/mamba-yolo/Mamba-YOLO-T.yaml
–amp
–project
./output_dir/mscoco
–name
mambayolo_n

### 解决方案 `ModuleNotFoundError: No module named 'selective_scan_cuda_core'` 的错误通常表明 Python 无法找到指定的模块 `selective_scan_cuda_core`。这可能是由于以下几个原因之一: 1. **模块未正确安装**:该模块可能尚未被正确编译或安装。 2. **依赖项缺失**:某些必要的 CUDA 或其他库可能未正确配置3. **路径问题**:Python 可能无法定位到已安装的模块。 以下是针对此问题的具体解决方法: #### 方法一:重新构建和安装自定义 CUDA 模块 如果 `selective_scan_cuda_core` 是通过 PyTorch 自定义扩展实现的,则需要确保其源码已被正确编译并安装。可以尝试以下步骤来重建模块[^1]: ```bash cd path/to/selective_scan_cuda_core/source/code python setup.py install --user ``` 或者,使用 `torch.utils.cpp_extension` 动态加载模块: ```python from torch.utils.cpp_extension import load selective_scan_cuda_core = load( name="selective_scan_cuda_core", sources=["path_to_source_file.cpp", "path_to_cuda_file.cu"], verbose=True ) ``` #### 方法二:检查 CUDA 和 PyTorch 配置 确认当前使用的 PyTorch 版本与 CUDA 版本兼容。可以通过以下命令验证: ```python import torch print(torch.__version__) print(torch.cuda.is_available()) print(torch.version.cuda) ``` 如果不匹配,请卸载现有 PyTorch 并重新安装适合的版本: ```bash conda uninstall pytorch torchvision torchaudio cudatoolkit -y conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 cudatoolkit=11.7 -c pytorch -c nvidia ``` #### 方法三:手动安装 Apex 库 有时,类似的错误也可能由 Apex 库引起。按照官方文档中的说明安装 Apex,并启用 CUDA 支持[^3]: ```bash git clone https://github.com/NVIDIA/apex.git cd apex pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" . ``` #### 方法四:排查环境变量 确保系统的 PATH 和 LD_LIBRARY_PATH 中包含了正确的 CUDA 路径。可以在终端运行以下命令设置环境变量: ```bash export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH ``` #### 方法五:调试 ImportError 错误 如果以上方法均无效,可进一步分析导入失败的原因。例如,打印 sys.path 来查看 Python 是否能够访问目标模块所在的目录: ```python import sys print(sys.path) ``` 同时,也可以利用 `ldd` 工具检查动态链接库是否存在冲突: ```bash ldd /path/to/selective_scan_cuda_core.so ``` --- ### 总结 上述方法涵盖了从模块重装、PyTorch/CUDA 配置校验到环境变量调整等多个方面。具体实施时需根据实际开发场景灵活选用。若仍存在问题,建议提供更详细的上下文信息以便深入诊断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值