使用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中都要删除)
错误四
Could not find a task with the ID xx
错误原因:双位数的ID,前面要补0,66要变成066