当前位置:   article > 正文

nnUNetv2代码实战记录(新手小白初次尝试)_nnunetv2实践

nnunetv2实践

nnUNetv2代码实战记录(新手小白初次尝试)


前言

是新手小白初次接触深度学习与医学图像分割领域,在师兄帮助下成功运行,初次进行代码实操,期间遇到许多配置上的问题,以及代码运行过程中的问题,记录下来帮助以后复盘,也希望能够帮助遇到一样问题的大家!(本文所有的操作均在服务器的linux系统上进行)


一、nnUNet简介

nnU-Net是一种医学影像分割框架,由德国癌症研究中心、海德堡大学以及海德堡大学医院的研究人员提出。它基于经典的U-Net结构,并采用了自适应的方法来调整所有超参数,无需人工干预。这使得nnU-Net能够适应任何新的医学影像数据集,并在多个医学影像分割挑战中取得了最先进的性能

二、服务器初始化

编辑文件+刷新,使得能使用conda,以进行后续的环境配置

  • 输入:vim ~/.bashrc
  • 开始进行编辑:输入i
  • 移动到文件的最后一行,加上source /root/miniconda3/etc/profile.d/conda.sh
  • 保存并退出:按Esc键,输入:wq,再回车
  • 输入bash重启终端(即,刷新一下

三、虚拟环境

1. 创建虚拟环境

提示:先进入服务器终端(博主使用的是autodl)
  • 1
username@xuan3291:~$ conda create -n nnUNet 
username@xuan3291:~$ conda activate nnUNet # 激活环境,每一次重新登录的时候都需要激活
(your_env_name)username@xuan3291:~$ #激活后会在用户前显示当前使用的环境
  • 1
  • 2
  • 3

2.查看cuda版本

nvcc --version
  • 1

3.查看python版本,exit()退出

![[Pasted image 20240316210928.png]]

发现还是3.8

conda install python=3.9
  • 1

![[Pasted image 20240316211255.png]]

更新完毕

3.在虚拟环境中安装torch

在虚拟环境中安装torch:
PyTorch
![[Pasted image 20240316212241.png]]

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
  • 1

注:安装时遇到的问题
>![[Pasted image 20240316212714.png]]

在网上看到怀疑是镜像问题

//查看镜像源
conda config --show channels
//恢复默认的镜像源
conda config --remove-key channels
//还是不行怀疑原本镜像源不行
  • 1
  • 2
  • 3
  • 4
  • 5

还是不行,使用pip

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
  • 1

四、安装nnunet

git clone https://github.com/MIC-DKFZ/nnUNet.git
cd nnUNet
pip install -e .
使用下面这个
git clone https://github.com/MIC-DKFZ/nnUNet.git
cd nnUNet
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -e .
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

![[Pasted image 20240315160405.png]]在这里插入图片描述

(时间好久)
解决方法
1.从github上git clone代码的时候速度慢,解决方法: https://www.jianshu.com/p/d58ab49ba98b/
2.运行pip命令的时候速度很慢

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "这里是你要安装的包名称(去掉引号)"
  • 1

安装隐藏层 (ps:博主未使用,可选)

pip install --upgrade git+https://github.com/FabianIsensee/hiddenlayer.git@more_plotted_details#egg=hiddenlayer
  • 1

额外库安装 (ps:同上)

conda install h5py
  • 1

五、数据整理

1.上传数据集后解压

//先下载
sudo apt-get update
sudo apt-get install p7zip-full
//再解压
apt-get update && apt-get install -y unzip autodl-tmp/nnUNetFrame/DATASET/nnUNet_raw/Task019_Lung.zip
(这里发现解压不了)
//最后使用云盘上传了
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

建议使用云盘上传(见服务器的帮助文档)
数据集下载一定要检查有没有下载好,吃了大亏:,发现label.tr前面几个数据命名错误,无缘无故多了(1),并且云盘上传中断了导致数据缺失 orz

2.整理文件夹

2.1在autodl-tmp创建nnUNetFrame

在这里插入图片描述

2.2创建文件夹DATASET

在这里插入图片描述

2.3 nnUNet_preprocessed,nnUNet_raw,nnUNet_trained_models

在这里插入图片描述

3.增加系统变量

提示:这里对文章进行总结:让nnUNet知道你的文件存放在哪儿

vim ~/.bashrc
# 1. 按下 i 进入编辑模式
# 2. 将以下内容修改为自己的目录后粘贴到窗口
# 3. 按下 ESC,shift+;输入:后 按下 wq 回车完成保存

# 注意先在 /datasets/users/ 下创建自己的目录
export nnUNet_raw_data_base="/root/autodl-tmp/nnUNetFrame/DATASET/nnUNet_raw"
export nnUNet_preprocessed="/root/autodl-tmp/nnUNetFrame/DATASET/nnUNet_preprocessed"
export RESULTS_FOLDER="/root/autodl-tmp/nnUNetFrame/DATASET/nnUNet_trained_models"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

六、数据集预处理

一定要先进入nnunet的虚拟环境中再进行以下步骤

nnUNetv2_plan_and_preprocess -d 19 --verify_dataset_integrity  
  • 1

这里发现数据集不是放在nnunet_raw里面,而是在nnunet_raw_data里面,然后把数据集放入即可

在这里插入图片描述
然后会出现以下画面
在这里插入图片描述

七、训练

nnUNet_train 3d_fullres nnUNetTrainerV2 019 0
//训练过程中止了(使用下面这一条继续,每50条会保存一次)
nnUNet_train 3d_fullres nnUNetTrainerV2 019 0 -c
  • 1
  • 2
  • 3

在这里插入图片描述

八、 推导

autodltmp/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task019_Lung下创建inferTs文件夹,以存储测试集推理数据

nnUNet_predict:执行预测的命令;
-i: 输入(待推理测试集);
-o: 输出(测试集的推理结果);
-t: 你的任务对应的数字ID;
-m: 对应的训练时使用的网络架构;
-f: 数字4代表使用五折交叉验证训练出的模型;
推理完全部需要消耗相当长的时间,建议先只用一个测试文件进行推理。

nnUNet_predict -i autodl-tmp/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task019_Lung/imagesTs/ -o autodl-tmp/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task019_Lung/inferTs -t 019 -m 3d_fullres -f 0
  • 1

在这里插入图片描述

九、评估推理结果:

python /root/autodl-tmp/nnUNetFrame/nnUNet/nnunetv2/evaluation/evaluate_predictions.py -m model_best -t 019 -f 0
  • 1

这里注意要修改autodl-tmp/nnUNetFrame/nnUNet/nnunetv2/evaluation/evaluate_predictions.py 这个py文件里面的路径
在这里插入图片描述

十、参考文献

1.nnUNet保姆级使用教程!从环境配置到训练与推理(新手必看)
2.nnUNetv2训练二维图像数据集
3.nnUNet实战(一):CREMI挑战赛简单实践
提示:这里对文章进行总结:
以及房师兄鼎力相助

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/776010
推荐阅读
相关标签
  

闽ICP备14008679号