nnDetection安装和使用
服务器环境:CUDA11.4 +torch1.12+24G显卡+linux
网上有挺多nnunet的安装和使用教程,为啥没有nndetection的教程呢,是因为太新了吗
用了这麽久才知道setup.py是这样用,是真的菜
安装conda,新建自己的环境,安装torch及其依赖,之后下载nndetection完整项目文件并解压,之后cd到包含setup.py的目录,输入pip install -e.安装nndetection所需依赖包。
看到进度条和successful心情就好,哈啊哈哈
环境装完了,就开始代码呗!
之前弄过nnunet,nndet也一样,先数据处理。运行preprocess.py,先报错环境变量没有设置好,包括det_data和det_models两个变量,那就先设置环境变量吧,参考博客https://zhuanlan.zhihu.com/p/359354934设置。我的环境是建在硬盘上的,因为内存有限,而且个人数据集比较大,所以用于保存数据的路径det_data和det_models都是指向硬盘的。
之后是数据集格式的问题,各种问题,无奈只好先试一下推荐的案例了
直接终端运行nnunet_example生成数据集
生成的数据集路径显示为,这个文件夹和路径后面要参考来创建自己的文件夹并应用到自己的数据集上。
其中生成的文件包括raw_splitted和dataset.json和logging.log
之后运行运行nndet_prep 000D3_Example进行数据处理。
接下来换到我自己的数据集上:
这是我的数据集,命名方式如下
上面是labelsTs
上面是labelsTr
上面是imageTs
上面是imagesTr
这个是raw_splitted文件夹里的dataset.json文件内容
这个是标签labelsTr和labelsTs里面每个case对应的json文件内容。这个可以查看nndetection官方代码readme中的json文件内容制作属于自己的json文件。
之后进入数据预处理过程
所需时间较长,请耐心等待,我的数据较多,时间更长
预处理之后生成的文件和example一样,这是官网给的文件明细
之后是nndet_unpack
这个unpack是将npz文件转换为npy,之前没有做过目标检测相关的任务,具体为啥要转换还不清楚。
之后就是训练过程了
训练过程比较慢,一个epoch跑两三个小时也是正常的,请耐心等待。
我在跑训练的时候遇到过
跑到这里就卡死了,纹丝不动,折磨了好久,最后在官网上找到了作者的解答,
原因是环境变量OMP_NUM_THREADS=1,要设置,不然会出现奇怪的问题。
nnDetection安装到使用,包括环境搭建,数据预处理和训练(没有使用docker)
于 2022-07-22 17:36:13 首次发布