这是nnU-Net系列第二篇–安装教程
上一篇:nnU-Net介绍篇
nnU-Net只在Linux
上测试(ubuntu16、18和20;centOS, RHEL)。它也可以在其他操作系统上工作,但我们不能保证它会工作。
因此,最好安装在Linux上
nnU-Net需要一个GPU!为了进行推断,GPU应该有4gb的VRAM。为了训练nnU-Net模型,GPU应该至少有11gb(例如rtx2080ti)。
由于使用混合精度,使用Volta架构(Titan V,V100 gpu)或使用cuDNN 8.0.2从源代码(参见此处)编译pytorch时,可以实现最快的训练时间。
请注意,pytorch的未来版本将默认包括cudnn8.0.2或更新版本,并且不需要从源代码处编译。
对于training,我们建议一个强大的CPU。建议至少使用6个CPU内核(12个线程)。CPU需求主要与数据扩充和随输入通道数量的扩展有关,因此对于使用4种图像模式的数据集(如BraTS 4个模态),CPU需求较高,而对于仅使用CT图像的数据集(如LiTS),CPU需求较低。
我们强烈建议您在虚拟环境中安装nnU-Net。请不要使用conda环境
, 这在过去引起了多个问题。
Python2已弃用,不受支持。请确保您使用的是Python 3
参考链接
该模块是标准Python 3库的一部分,以便我们可以创建虚拟环境(virtualenv)。让我们通过输入以下内容来安装venv:
sudo apt-get install -y python3-venv
让我们选择要将Python编程环境放入哪个目录,或者我们可以使用来创建一个新目录mkdir,如下所示:
mkdir environments
cd environments
注意:因为我是第二次安装,所以我演示是存放在文件夹env2中,你们就放在environments中,和官网统一
一旦进入您希望环境存在的目录,就可以通过运行以下命令来创建环境:
python3 -m venv project_env
project_env
是虚拟环境的名字,建议命为nnunet, 方便记忆
本质上,这将建立一个新目录,其中包含一些项目,我们可以使用以下ls命令查看该目录
这些文件一起使用,以确保您的项目与本地计算机的更广泛的上下文隔离开,从而避免系统文件和项目文件混在一起。这是进行版本控制并确保您的每个项目都可以访问其所需的特定程序包的良好做法。
因为我是第二次安装, 所以名字换了。
要使用此环境,您需要激活它,您可以通过键入以下调用激活脚本的命令来激活它。这和激活conda环境略有不同
source nnunet2/bin/activate
这里激活要先切换到nnunet2的上一级文件夹
激活后会在最左边显示该环境的名称
要离开环境,只需键入命令deactivate,您将返回到原始目录。
再次进入虚拟环境后
pip install nnunet
安装好后可以查看下安装了的包
pip list
这一步对于nnUNet来讲很重要,nnU-Net需要知道您打算将原始数据,预处理数据和训练好的的模型保存在何处。
参考链接
必须设置以下三个环境变量:
1 nnUNet_raw_data_base
:原始文件存放地址。位于nnUNet_raw_data_base
的文件夹必须至少具有子文件夹nnUNet_raw_data
,该子文件夹又为每个任务包含一个子文件夹。用户有责任将原始数据转换为一下格式
2 nnUNet_preprocessed
:这是将保存预处理数据的文件夹。训练期间还将从此文件夹中读取数据。因此,重要的是将其放置在访问延迟低且吞吐量高的驱动器上(常规sata或nvme SSD足够)。
3 RESULTS_FOLDER
:这指定nnU-Net将在其中保存模型权重的位置。如果下载了预训练的模型,则将在此处保存它们。
这一步很重要,理清楚各个文件夹里面存放的是什么数据,不要存错地方
有几种方法可以做到这一点。最常见的一种方法是在主目录中的.bashrc
文件中设置路径。对我来说,该文件位于/home/fabian/.bashrc
。您可以使用任何文本编辑器打开它。
如果看不到该文件,则可能是因为默认情况下该文件是隐藏的。您可以运行ls -al /home/fabian
以确保看到它。在极少数情况下,它可能不存在,您可以使用创建它touch /home/fabian/.bashrc
。
在文本编辑器中打开文件后,将以下行添加到底部:
export nnUNet_raw_data_base="/media/fabian/nnUNet_raw"
export nnUNet_preprocessed="/media/fabian/nnUNet_preprocessed"
export RESULTS_FOLDER="/media/fabian/nnUNet_trained_models"
/media/fabian/
改为你想存放的地方
如果没有文本编辑器,可以直接在终端修改:
修改方法
vim ~/.bashrc 进入到文件;
直接按 i 键可以对文件进行修改, Esc + :+ wq 退出并保存修改之后的文件
命令 :source ~/.bashrc 更新 .bashrc
成功设置后,您可以通过键入echo $RESULTS_FOLDER etc来验证路径设置正确,并且应该打印出正确的文件夹。
上面的方法在系统上永久设置路径(直到从.bashrc中删除行)。如果只希望临时设置它们,则可以在终端中运行导出命令:
export nnUNet_raw_data_base="/media/fabian/nnUNet_raw"
export nnUNet_preprocessed="/media/fabian/nnUNet_preprocessed"
export RESULTS_FOLDER="/media/fabian/nnUNet_trained_models"
注意
这将仅设置当前终端会话的路径(如果关闭终端,并且每次都需要重置,则变量将丢失)。
恭喜 : 到这里,就算安装成功了~~
安装nnU-Net将向您的终端添加几个新命令。这些命令用于运行整个nnU-Net管道。您可以从系统上的任何位置执行它们。所有nnU-Net命令的前缀都有 nnUNet_
这样易于识别。如训练命令nnUNet_train
请注意,这些命令仅执行python脚本。如果在虚拟环境中安装了nnU-Net,则在执行命令时必须激活该环境
。
所有nnU-Net命令都有一个-h选项,该选项提供有关如何使用它们的信息
在这里可以查看参数的使用
好不容易安装好了,总的练练兵吧。下一博客,我们就来实战吧~~