nnUNet使用指南(二):使用nnUNet在自己的数据集上训练出现的问题报错

错误一

在使用代码nnUNet_plan_and_preprocess -t XXX --verify_dataset_integrity进行数据集验证时出现AssertionError

AssertionError: could not find label file for case MR_001_0000. Expected file: /data/nnUNet_raw_data_base/nnUNet_raw_data/Task066_MR/labelsTr/MR_001_0000.nii.gz

数据集已经按照要求的情况下(image,label)->(MR_001_0000.nii.gz,MR_001.nii.gz)
错误产生原因:在json文件中images不需要加上模态:"image": "./imagesTr/MR_001.nii.gz"而不是"image": "./imagesTr/MR_001_0000.nii.gz"
并且所有数据必须都有在json文件中写入的模态。

错误二

在使用代码nnUNet_plan_and_preprocess -t XXX --verify_dataset_integrity进行数据集验证时出现nibabel.filebasedimages.ImageFileError
nibabel.filebasedimages.ImageFileError: Cannot work out file type of ".../nnUNet_raw/nnUNet_raw_data/Task066_LiverMriTumour/imagesTr/MR_001_0000.nii.gz"
错误原因:尽管文件扩展名为GZ,但该文件实际上可能并未压缩。尝试用gzipping压缩它

错误三

在使用代码nnUNet_plan_and_preprocess -t XXX --verify_dataset_integrity进行多模态数据集验证时出现出现某些数据维度不匹配
将不匹配数据删除即可(image、label、json中都要删除)
或者用python将image和label的direction、spacing、origin设置为相同(通过getXXX、setXXX实现)
不匹配原因探究:多模态数据共用一个label,但在扫描患者时,患者会位移导致图像不是在一个位置上
而多模态数据只在其中一个模态上勾画label,在这个模态上的label是准确的位置,而在别的模态上label的位置就是错的
此时一般会对多模态数据进行配准,使配准的后的模态都处在同样的位置,配准会导致image的direction、spacing、origin
与label不匹配,在验证时就会出现不匹配。

错误四

Could not find a task with the ID xx
错误原因:双位数的ID,前面要补0,66要变成066

错误五

CUDA error: no kernel image is available for execution on the device
CUDA和pytorch不匹配,重装
卸载:
pip uninstall torch
安装:
官网找自己版本的安装命令:

pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113

此步骤也可解决训练的慢的问题,自带的
安装时报错Requirement already satisfied
意味当前安装环境下已经安装该包,查看是否环境选择错误
或指定路径参考下面链接:

pip install 工具包到指定目录

posted @ 2022-04-26 21:32  梅雨明夏  阅读(2885)  评论(0编辑  收藏  举报