当前位置: 首页 > news >正文

nnUnet代码分析一训练

nnUnet是做分割的一套完整代码,用在医学图像分析中较多,效果还很不错。

先看训练的代码 run_training.py

一般用法:nnUNet_train 2d nnUNetTrainerV2 TaskXXX_MYTASK FOLD --npz

2d代表2d Unet网络,nnUNetTrainerV2代表trainer,Task是任务id,

还有其他的参数。详见代码。

plans_file, output_folder_name, dataset_directory, batch_dice, stage, \

    trainer_class = get_default_configuration(network, task, network_trainer, plans_identifier)

根据网络、任务、trainer,计划生产一个trainer_class.

命令:nnUNet_train 2d  nnUNetTrainerV2 Task004_Hippocampus 1 --npz

输出结果如下:

###############################################
I am running the following nnUNet: 2d
My trainer class is:  <class 'nnunet.training.network_training.nnUNetTrainerV2.nnUNetTrainerV2'>
For that I will be using the following configuration:
num_classes:  2
modalities:  {0: 'MRI'}
use_mask_for_norm OrderedDict([(0, False)])
keep_only_largest_region None
min_region_size_per_class None
min_size_per_class None
normalization_schemes OrderedDict([(0, 'nonCT')])
stages...

stage:  0
{'batch_size': 366, 'num_pool_per_axis': [3, 3], 'patch_size': array([56, 40]), 'median_patient_size_in_voxels': array([36, 50, 35]), 'current_spacing': array([1., 1., 1.]), 'original_spacing': array([1., 1., 1.]), 'pool_op_kernel_sizes': [[2, 2], [2, 2], [2, 2]], 'conv_kernel_sizes': [[3, 3], [3, 3], [3, 3], [3, 3]], 'do_dummy_2D_data_aug': False}

I am using stage 0 from these plans
I am using batch dice + CE loss

I am using data from this folder:  /mnt/nnUNet_preprocessed/Task004_Hippocampus/nnUNetData_plans_v2.1_2D
###############################################

这里有一个batch dice 和sample dice,stage的概念不是很理解。

按照上面的提示,我们用的trainer是'nnunet.training.network_training.nnUNetTrainerV2.nnUNetTrainerV2'> 

继承自class nnUNetTrainer(NetworkTrainer):

先看:NetworkTrainer.py,nnUNetTrainer.py

do_split :5折验证

训练过程没有什么特别,sgd+poly_lr

loss是dice+ce

数据增强也非常简单,只有缩放和旋转

    def setup_DA_params(self):

        """

        - we increase roation angle from [-15, 15] to [-30, 30]

        - scale range is now (0.7, 1.4), was (0.85, 1.25)

        - we don't do elastic deformation anymore

有早停,patience=50.

相关文章:

  • 节约用水也有钱?成都市2022年成都市节约用水申报奖励、条件、材料、时间及流程
  • 计算机网络——层次结构
  • [Android]Android P(9) WIFI学习笔记 - 扫描 (1)
  • java众筹网计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  • .NET BackgroundWorker
  • 中英文说明书丨SYSY NeuN抗体参数及应用实例
  • 物联网开发笔记(6)- 使用Wokwi仿真树莓派Pico实现按键操作
  • 酷家乐基于 Crane EHPA 的弹性落地实践
  • PEG小分子重氮生物素-PEG3-炔烃 有哪些需要了解的知识?
  • 智能自修复防腐涂层研究进展综述
  • 银行互联网类业务基于分布式存储的架构设计与实施运维分享
  • 油气管道系统安全状态监测技术研究进展
  • Room (三) RecyclerView 呈现列表数据
  • 【我的Android进阶之旅】如何在Android中使用ARCore来增强人脸Augmented Faces?
  • 基于云原生存储的容器持久化存储方案
  • [LeetCode] Wiggle Sort
  • css选择器
  • go append函数以及写入
  • 电商搜索引擎的架构设计和性能优化
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 机器学习 vs. 深度学习
  • 技术发展面试
  • 前端相关框架总和
  • 前端知识点整理(待续)
  • 悄悄地说一个bug
  • 听说你叫Java(二)–Servlet请求
  • 一个JAVA程序员成长之路分享
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 原生js练习题---第五课
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 在Unity中实现一个简单的消息管理器
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (层次遍历)104. 二叉树的最大深度
  • (二)PySpark3:SparkSQL编程
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • .axf 转化 .bin文件 的方法
  • .NET Reactor简单使用教程
  • .net wcf memory gates checking failed
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • // an array of int
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [] 与 [[]], -gt 与 > 的比较
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [Android]竖直滑动选择器WheelView的实现
  • [bbk5179]第66集 第7章 - 数据库的维护 03
  • [BUUCTF]-PWN:wustctf2020_number_game解析(补码,整数漏洞)
  • [C#]C# winform部署yolov8目标检测的openvino模型
  • [C++]高精度 bign (重载运算符版本)
  • [C++]类和对象【上篇】
  • [codevs 1515]跳 【解题报告】
  • [C和指针].(美)Kenneth.A.Reek(ED2000.COM)pdf