U-Mamba复现中遇到的问题及解决方法(更新中)

1. 环境安装

在这里插入图片描述

1.1. 出错步骤1:创建umamba虚拟环境出错

解决方案在我的另一篇文章

1.2. 出错步骤2:安装pytorch出错

1.3. 出错步骤3:安装casual-conv1d出错

错误1:在这里插入图片描述
首先尝试了第一种解决方法:使用git clone直接将causal-conv1d clone过来

在这里插入图片描述
但是出错:(后来发现前面加上一个sudo就行)

在这里插入图片描述
后尝试第二种解决方法:直接从github上将项目下载到本地,再将项目发到服务器上再进行安装,但是用WinScp发文件的时候告诉我权限不够了…遂放弃
第三种解决方法:

conda install -c "nvidia/label/cuda-11.7.0" cuda-nvcc//这里是根据自己的cuda版本进行安装的
conda install packaging
pip install -i https://pypi.mirrors.ustc.edu.cn/simple causal-conv1d==1.1.1//这里用中科大的源,因为我自己用清华源的时候会Timeout,但每个人情况可能不同哪个能用就用哪个

成功安装(Building wheel for mamba_ssm的时间会比较长,安装mamba_ssm的时等待时间也要等较长时间)

  • 注意:安装的mamba_ssm的版本一定要和casual-conv1d的版本相同,要安装mamba_ssm==1.1.1版本,否则后面运行时会报错(另一定要注意是安装mamba_ssm不是mamba!!!)

2. 运行:

2.1. 数据集预处理

nnUnet有严格的数据集结构要求,按照以下步骤制作自定义数据集:

  1. 在umamba下有一个文件夹data,初始只包含了nnUNet_raw文件夹,其中包含了作者在文章中使用的四个数据集(只有数据集名字,其中并没有图像)
    在这里插入图片描述

  2. 从作者提供的网盘中下载数据集,这里使用的是Dataset_703,下载后包含了以下几个文件:
    在这里插入图片描述

  3. 在data文件夹下创建三个文件夹,分别为nnUNet_results、nnUNet_raw、nnUNet_preprocessed
    在这里插入图片描述

  4. 配置环境变量

export nnUNet_results="/app/data/nnUNet_results"
export nnUNet_preprocessed="/app/data/nnUNet_raw"
export nnUNet_raw="/app/data/nnUNet_raw"

  1. 文章作者提供的数据集已经经过初步的处理的,所以不需要进行数据转换,只需要进行预处理即可:
nnUNetv2_plan_and_preprocess -d 703(这里根据自己的数据集名称进行修改DATASET_ID) -verify_dataset_integrity -c 2d(如果是3d图像,修改为3d即可)

开始处理:
在这里插入图片描述

2.2. 训练

nnUNet_n_proc_DA=0 CUDA_VISIBLE_DEVICES=0 nnUNetv2_train Dataset703_NeurIPSCell 2d all -tr nnUNetTrainerUMambaEnc -device cuda

2.2.1. 问题一

在docker容器中运行的,首先报错:
ImportError: libGL.so.1: cannot open shared object file: No such file or dir
在这里插入图片描述
解决方法:需要更新apt,安装libgl1-mesa-glx

apt update
apt install libgl1-mesa-glx

2.2.2. 问题二

在这里插入图片描述
在docker容器中运行老是能碰到奇奇怪怪的问题,这次是:RuntimeError: One or more background workers are no longer alive. Exiting. Please check the print statements above for the actual error message

最后在nnUnet的issues中找到了解决方法https://github.com/MIC-DKFZ/nnUNet/issues/1343
在这里插入图片描述

nnUNet_n_proc_DA=0 CUDA_VISIBLE_DEVICES=0 nnUNetv2_train Dataset703_NeurIPSCell 2d all -tr nnUNetTrainerUMambaEnc -device cuda

2.2.3. 问题三

在这里插入图片描述
ausal_conv1d_fwd(): incompatible function arguments. The following argument types are supported:
1.(arg0: torch.Tensor, arg1: torch.Tensor, arg2: Optional[torch.Tensor], arg3: Optional[torch.Tensor], arg4: bool) -> torch.Tensor
解决方法:将mamba-ssm版本换成1.1.1版本,pip install mamba-ssm=1.1.1

开始训练啦:
在这里插入图片描述
显存占用大约为15G:
在这里插入图片描述

3. 测试

待更新

Reference

  1. 复现U-Mamba
  2. Mamba 环境安装踩坑问题汇总及解决方法
  3. [最佳实践] conda环境内安装cuda 和 Mamba的安装
  4. nnUNet_v2(Linux)
  5. ImportError: libGL.so.1: cannot open shared object file: No such file or dir
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值