安装:
pip install nnunetv2
## 或者是把他下载下来,自行安装
git clone https://github.com/MIC-DKFZ/nnUNet.git
cd nnUNet
pip install -e .
GitHub代码:
GitHub - MIC-DKFZ/nnUNet
十项医学分割数据集:
Medical Segmentation Decathlon
注意:安装时一定不能使用魔法,否则会被伏地魔(False)
配置:
这里有几个铁汁,可以一起参考,以他们的为主,我的为辅,一起食用
(四:2020.07.28)nnUNet最舒服的训练教程(让我的奶奶也会用nnUNet(上))(21.04.20更新)_nnuet_花卷汤圆的博客-CSDN博客
nnUNet实战一使用预训练nnUNet模型进行推理_Tina姐的博客-CSDN博客
nnUNet 使用不完全指南(上) - No Visitor Website(这里有自定义生成json的代码)
我引用一下吧:
from collections import OrderedDict
from batchgenerators.utilities.file_and_folder_operations import save_json
def main():
foldername = "Task128_LungLobe"
numTraining = 80
numTest = 6
numClass = 6
json_dict = OrderedDict()
json_dict['name'] = foldername
json_dict['description'] = foldername
json_dict['tensorImageSize'] = "4D"
json_dict['reference'] = "see challenge website"
json_dict['licence'] = "see challenge website"
json_dict['release'] = "0.0"
json_dict['modality'] = {
"0": "CT",
}
json_dict['labels'] = {i: str(i) for i in range(numClass)}
json_dict['numTraining'] = numTraining
json_dict['numTest'] = numTest
json_dict['training'] = [{'image': "./imagesTr/LungLobe_{:0>3d}.nii.gz".format(i),
"label": "./labelsTr/LungLobe_{:0>3d}.nii.gz".format(i)}
for i in range(numTraining)]
json_dict['test'] = ["./imagesTs/LungLobe_{:0>3d}.nii.gz".format(i)
for i in range(numTraining, numTraining+numTest)]
save_json(json_dict, "./dataset.json")
if __name__ == "__main__":
main()
nnUNet保姆级使用教程!从环境配置到训练与推理(新手必看) | AI技术聚合
在windows下安装nnUnet,并制作数据集以及运行(让隔壁奶奶也能学会的教程)_花生米生花@的博客-CSDN博客
数据文件夹:
其实就是需要自己自行手动建立几个文件夹,
进入红色文件夹:
在红色文件夹里,丢如数据文件夹Task14_Vessel,这是固定的命名形式Task数字_名字
数字的话,建议是10以上,但是不能三位数,就说如果你是13的话,不要013,如果你里面的数据格式是正确的话,就是训练数据后面是_0000,nii.gz后缀的话,可以忽略这个规则,可直接跳到 --然后
因为的我的数据是这样的
肯定是不符合格式的,所以得改,可以利用nnunet自带的代码进行更改:
nnUNet_convert_decathlon_task -i F:/data/data_1100/nnUNet_raw_data_base/nnUNet_raw/nnUNet_raw_dat
a/Task14_Vessel
这时,他会再次生成一个文件夹,这个文件夹叫Task014_Vessel,原来的叫Task14_Vessel,所以你应该懂了吧!!!
其中这个过程中你是回遇到错误的,如果你的是Windows环境的话,解决方案,如下:
nnUNet windows 遇到的 bug_nnunet windows_*小呆的博客-CSDN博客
还有个最重的是,image和label的名字得一样
然后
运行指令,数字是自己任务的代号:
nnUNet_plan_and_preprocess -t 14 --verify_dataset_integrity
## 或者是
nnUNet_plan_and_preprocess -t 14
然后又遇到报错了,一般是到了这步才会报错的:
File "D:\Python\anaconda3\envs\pytorch\lib\site-packages\nnunet\preprocessing\sanity_checks.py", line 129, in verify_dataset_integrity
assert isfile(expected_label_file), "could not find label file for case %s. Expected file: \n%s" % (
AssertionError: could not find label file for case img_001. Expected file:
上面所有的问题皆是Windows下出现的,Linux的话,我是一次通过的。
解决方案:装Windows版的nnunet,它会解决Windows下的线程问题,不会报这么多奇奇怪怪的问题
最后就是运行指令进行训练:
nnUNet_train 3d_fullres nnUNetTrainerV2 13 0-4
nnUNetTrainerV2:代表是训练的模型,
13:任务数据集
0-4:五折中的其中一折
若是训练到一半,想接着训练,则
nnUNet_train 3d_fullres nnUNetTrainerV2 13 0-4 -c
-c:continue的意思
nnunet默认是每50个epoch保存一次
总共训练1000个epoch
#############################################################################
指令总结
#############################################################################
nnUNet_convert_decathlon_task -i F:/data/data_1100/nnUNet_raw_data_base/nnUNet_raw/nnUNet_raw_dat
a/Task14_VesselnnUNet_plan_and_preprocess -t 14
nnUNet_train 3d_fullres nnUNetTrainerV2 13 0
文件位置
nnUNet_convert_decathlon_task:
\nnunet\experiment_planning\ nnUNet_convert_decathlon_task
nnUNet_plan_and_preprocess:
\nnunet\experiment_planning\ nnUNet_plan_and_preprocess
nnUNet_train:
\nnunet\run\run_training
##########################################################################################################################################################
训练的一些源代码笔记
如果用的是nnUNet_train 3d_fullres nnUNetTrainerV2的话,主要看这五个文件代码:
run_training.py:
位置:\nnunet\run\run_training
功能:文章来源:https://www.toymoban.com/news/detail-567371.html
主流程都在这里
nnUNetTrainerV2.py:
位置:\nnunet\training\network_training\nnUNetTrainerV2
功能:
1、定义训练的网络模型、初始化网络
2、加载和解压数据集,数据的增强
3、定义损失函数、优化器、学习率之类的
4、加载数据参数定义
5、训练的入口,(在代码最后一段)
nnUNetTrainer.py:
位置:\nnunet\training\nnUNetTrainer.py
功能:
1、加载的一些数据参数定义,分配到self总体上
2、在这个可以自己改batch大小和patch_size大小
一般默认的batch是2,patch_size是【90,190,190】
self.batch_size 和 self.patch_size
3、划分训练集和验证集
4、加载数据集
network_trainer.py:
位置:
位置:\nnunet\training\network_trainer.py
功能:
1、设置一些参数
self.num_batches_per_epoch = 250 ## 训练块
self.num_val_batches_per_epoch = 50 ## 测试块
self.save_every = 50 ## 每多少个epoch保存一下
2、加载权重
3、保存debug日志文件到输出文件夹下
4、训练的while:epoch < max_num_epochs:在这
generic_UNet.py:
位置:\nnunet\network_architecture\generic_UNet.py
功能:
网络结构模型文章来源地址https://www.toymoban.com/news/detail-567371.html
到了这里,关于【nnunet】个人数据训练心得的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!