下载源码:
whttps://github.com/MIC-DKFZ/nnUNet
安装依赖包 pip install nnunetv2
准备数据集
nnUNet文件下创建nnUNetFrame文件夹》 nnUNetFrame中创建DATASET的文件夹》 DATASET文件夹中nnUNet_raw,nnUNet_preprocessed,nnUNet_results》 nnUNet_raw放数据集( Task01_BrainTumour )》数据集中imagesTr(训练数据集)、imagesTs(测试数据集)、 labelsTr(对应标签文件)
修改框架路径
nnUNet/nnunetv2/paths.py
对应修改数据集路径
nnUNet_raw='/data2/zhangbei/nnUNet/nnUNetFrame/DATASET/nnUNet_raw’
nnUNet_preprocessed='/data2/zhangbei/nnUNet/nnUNetFrame/DATASET/nnUNet_preprocessed’
nnUNet_results='/data2/zhangbei/nnUNet/nnUNetFrame/DATASET/nnUNet_results’
制作数据集
nnUNet/nnunetv2/dataset_conversion/convert_MSD_dataset.py
修改line 132 数据目录和任务编码(注意指定任务编码为500以上)
生成nnUNetFrame/DATASET/nnUNet_raw/Dataset500_BrainTumour
转换后文件格式:BRATS_001_0000.nii.gz
构建数据json文件
nnunetv2/create_json.py
修改:line 14 数据目录
path_originalData = "/data2/zhangbei/nnUNet/nnUNetFrame/DATASET/nnUNet_raw/Dataset500_BrainTumour/"
修改模态信息 (还可以加入“1”:“MRI”之类的描述)
json_dict['modality'] = {
"0": "CT"
}
line 72 标签数量 range(4)表示4种类别(包括背景)
json_dict['labels'] = {i: str(i) for i in range(4)}
运行后在数据集目录下生成的data.json文件
检查数据集
nnunetv2/experiment_planning/ verify_dataset_integrity.py
修改line 232 数据目录
example_folder = join(nnUNet_raw, '/data2/zhangbei/nnUNet/nnUNetFrame/DATASET/nnUNet_raw/Dataset500_BrainTumour')
run运行
预处理
终端 cd nnunetv2/experiment_planning
执行指令:
python plan_and_preprocess_entrypoints.py –d 500 #500为数据集任务名
在nnUNetFrame/DATASET/nnUNet_preprocessed路径下生成一系列文件
训练网络
退回上一级文件命令 cd ..
终端 cd nnunetv2/run
python run_training.py Dataset500_BrainTumour 3d_loweres 4
生成nnUNetFrame/DATASET/nnUNet_results下文件
注意:
Epoch在nnunetv2/training/nnUNetTrainer/nnUNetTrainer.py中修改 self.num_epochs = 500
可能存在eopch到500依旧继续训练,nnunet默认1000轮
python run_training.py Dataset521_Hippocampus 3d_fullres 4 -tr nnUNetTrainer_5epochs
只有1,5,10,20能运行
run_trainning.py if __name__ == '__main__':
CUDA_VISIBLE_DEVICES=X #指定显卡
batch_size 在nnUNetFrame/DATASET/nnUNet_preprocessed/Dataset521_Hippocampus/nnUNetPlans.json中修改
预测网络
cd nnunetv2/inference
predict_from_raw_data.py 修改 line 872 876 877 884 中数据集名称
line 874 Use_flods(0, ), -----> Use_flods(4, ),
python predict_from_raw_data.py
生成相关文件Dataset500_BrainTumour /imagesTs_predlowres
参考nnunetV2实操分享和代码精读倡议_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Xw411z7E7/?spm_id_from=333.337.search-card.all.click&vd_source=603a91c069f6a08291615fe3a37ac042nnU-Net v2的环境配置到训练自己的数据集(详细步骤)_nnunetv2-CSDN博客
https://blog.csdn.net/m0_45521766/article/details/131539779