在 AutoDL 平台配置 U-Mamba 环境并训练自定义2d数据集

部署运行你感兴趣的模型镜像

在 AutoDL 平台配置 U-Mamba 环境并训练自定义2d数据集

需要在 AutoDL 平台配置 U-Mamba 环境并训练自定义2d数据集,看了一些博客的复现,为了方便一直训练,所以在此记录一下

1 环境安装

###1.1 pytorch 与 nnunet
环境安装可看此博客
###1.2 autodl配置
在autodl服务器上配置
###1.3 autodl与pycharm联通
autodl与pycharm联通

配置自定义数据集

###2.1 数据集格式
数据集格式

  • 数据集dataset_name的格式: DatasetID_名称( 数字大于10)为数据集的ID
  • 相比于labels数据集,images数据集中原图命名后多加_0000,png格式

###2.2 创建需要的目录
数据集存放目录

  • eval_result 评估结果
  • nnUNet_predict_result 推理结果
  • nnUNet_preprocessed 数据预处理之后的图像
  • nnUNet_raw 原始数据集
  • nnUNet_results 训练模型即验证结果

数据预处理

###3.1 配置环境变量(换成你的真实路径)

首先

vim .bashrc

添加以下三行

export nnUNet_raw="autodl-tmp/U-Mamba-main/data/nnUNet_raw"
export nnUNet_preprocessed="autodl-tmp/U-Mamba-main/data/nnUNet_preprocessed"
export nnUNet_results="autodl-tmp/U-Mamba-main/data/nnUNet_preprocessed"

保存 Esc

:wq

最后

source .bashrc

###3.2 数据预处理

nnUNetv2_plan_and_preprocess -d 110 --verify_dataset_integrit

DATASET_ID(即为自选数据集ID,注意原图和标签的ID要一一对应)
预处理结果目录如图

训练

nnUNetv2_train 110 2d 9 -tr nnUNetTrainerUMambaEAP
  • 110即为自定义数据集ID
  • 9代表十折交叉验证(可更改验证方式,在模型主函数里修改do_split函数后重新划分数据集即可,默认是五折交叉)
  • nnUNetTrainerUMambaEAP为自定义网络模型,也可替换成别的网络模型

推理

###4.1 寻找最佳配置
在nnunetv2/evaluation/find_best_configuration.py 更改主函数中的数据集ID为你的自定义ID,交叉验证改为你选择的折数,然后运行

 cd /U-Mamba-main/umamba/nnunetv2/evaluation
 python find_best_configuration.py

修改主函数内容
记得同时修改训练使用的模型
###4.2 推理

nnUNetv2_predict -i ~/autodl-tmp/U-Mamba-main/data/nnUNet_raw/Dataset110_OCTASegmentation/imagesTs -o ~/autodl-tmp/U-Mamba-main/data/nnUNet_predict_result/Dataset110_result -d 110 -c 2d -f 9 -tr nnUNetTrainerUMambaEAP --disable_tta -chk checkpoint_best.pth
  • -i 原图存储的位置
  • -o 推理结果存储的位置;
  • 2d 数据集2d类型:
  • -f 接推理用第几折,或者全用;
  • -chk 预测模型,默认为checkpint_final.pth

评估

借用nnUNetV2的源码文件进行评估,位置:nnunetv2/evaluation/evaluate_predictions.py
对主函数进行修改, 修改完成后运行即可,得到DICE与Iou两个指标

  • floder_ref为测试集GT文件;floder_pred 为推理结果数据集;output_file 为需要输出的评价结果,json文件
  • labels_to_list_of_regions([1]) 前景是1,指定需要评估的区域为label1
  • 文件后缀,修改为.png文件
folder_ref = '/root/autodl-tmp/U-Mamba-main/data/nnUNet_raw/Dataset110_OCTASegmentation/labelsTs'
folder_pred = '/root/autodl-tmp/U-Mamba-main/data/nnUNet_predict_result/Dataset110_result'
output_file = '/root/autodl-tmp/U-Mamba-main/data/eval_result/topo.json'

image_reader_writer = SimpleITKIO()
file_ending = '.png'
regions = labels_to_list_of_regions([1])
ignore_label = None
num_processes = 12

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

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

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

<think>好的,我需要解释用户提供的三个环境变量在nnUNet中的作用。首先,用户提到了三个变量:nnUNet_raw_data_base、nnUNet_preprocessed和RESULTS_FOLDER。根据引用[2],这些变量分别对应不同的路径,可能是用于存储数据的不同阶段。 首先,我应该分别解释每个变量的作用。例如,nnUNet_raw_data_base可能存放原始医学图像数据,未经处理。nnUNet_preprocessed可能存放预处理后的数据,比如标准化后的图像。RESULTS_FOLDER可能用于保存训练好的模型。 接下来,需要说明设置这些环境变量的必要性。比如,框架需要知道从哪里读取原始数据,预处理后的数据存储位置,以及保存模型的路径。如果这些变量未正确设置,可能会导致程序无法找到文件,预处理失败,或者模型无法保存。 然后,可以引用用户提供的引用内容来支持解释。例如,引用[1]提到需要验证是否能识别这些变量,否则预处理无法进行。引用[2]展示了如何在配置文件中设置这些变量,说明用户需要正确导出它们。 还要注意用户提到的路径示例,比如使用/media/fabian/...,这可能是用户自定义的存储位置,需要根据实际情况调整。同时,环境变量在shell中导出后,才能被nnUNet框架正确识别和访问。 最后,生成相关问题需要考虑用户可能的后续疑问,比如如何验证设置是否正确,路径权限问题,或者在不同系统中如何配置这些变量。确保问题覆盖常见的使用场景和潜在问题。</think>在Shell中导出`nnUNet_raw`、`nnUNet_preprocessed`和`nnUNet_results`(或`RESULTS_FOLDER`)环境变量是**为nnU-Net框架定义关键数据路径**,直接影响其数据加载、预处理和模型保存功能。以下是具体作用: --- ### 1. **`nnUNet_raw_data_base`(原始数据路径)** - **作用**:存储未经处理的原始医学影像数据(如DICOM/NIFTI格式),包含图像和标注文件。nnU-Net从此目录读取数据以进行后续处理[^2]。 - **示例路径**:`export nnUNet_raw_data_base="/media/fabian/nnUNet_raw_data_base"` - **必要性**:若未设置,框架无法定位原始数据,导致预处理失败[^1]。 --- ### 2. **`nnUNet_preprocessed`(预处理数据路径)** - **作用**:存储预处理后的标准化数据(如重采样、归一化后的图像),供模型训练直接使用。预处理过程会生成此目录中的文件[^2]。 - **示例路径**:`export nnUNet_preprocessed="/media/fabian/nnUNet_preprocessed"` - **必要性**:避免重复预处理,提升训练效率。路径错误会导致每次训练重新预处理,耗时且占用存储。 --- ### 3. **`RESULTS_FOLDER`(模型输出路径)** - **作用**:保存训练后的模型权重、日志和验证结果。不同实验的模型版本可在此目录下区分。 - **示例路径**:`export RESULTS_FOLDER="/media/fabian/nnUNet_trained_models"` - **必要性**:若不定义,模型可能无法保存或覆盖历史训练结果。 --- ### 设置后的验证方法 ```bash echo $nnUNet_raw_data_base # 检查原始路径是否生效 echo $nnUNet_preprocessed # 检查预处理路径是否生效 echo $RESULTS_FOLDER # 检查模型输出路径是否生效 ``` 若输出为空或路径错误,需重新配置(如通过`.bashrc`或终端临时导出)[^1]。 --- ### 典型问题场景 - **路径权限问题**:若路径位于外部存储设备(如`/media/`),需确保用户有读写权限。 - **跨平台兼容性**:Windows中需使用`C:/path`格式注意斜杠方向。 - **多任务管理**:不同项目可通过修改环境变量快速切换数据集和模型。 ---
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值