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

南昌珠峰网站建设快速搭建网站 数据存储

南昌珠峰网站建设,快速搭建网站 数据存储,东莞seo建站优化工具,网站开发的四个高级阶段包括完成数据预处理命令后,开始训练 本文目录 训练代码入口nnUNetv2_train命令行参数run_training函数 训练代码训练结束 训练代码入口 nnU-Net V2 的训练命令是nnUNetv2_train nnUNetv2_train命令行参数 参数名称是否必填默认值描述dataset_name_or_id是无用于训练的…

完成数据预处理命令后,开始训练

本文目录

  • 训练代码入口
    • nnUNetv2_train命令行参数
    • run_training函数
  • 训练代码
  • 训练结束

训练代码入口

nnU-Net V2 的训练命令是nnUNetv2_train

nnUNetv2_train命令行参数

参数名称是否必填默认值描述
dataset_name_or_id用于训练的数据集名称或 ID
configuration需要训练的配置
fold5 折交叉验证的折数。应为 0 到 4 之间的整数
-trnnUNetTrainer指定自定义训练器。默认值为 nnUNetTrainer
-pnnUNetPlans指定自定义计划标识符。默认值为 nnUNetPlans
-pretrained_weightsNone用于预训练模型的 nnU-Net checkpoint文件路径。仅在实际训练时使用。测试版,请谨慎使用
-num_gpus1指定训练时使用的 GPU 数量
–use_compressedFalse如果设置此标志,训练数据(预处理后生成的压缩版数据集)将不会被解压缩。读取压缩数据会消耗更多 CPU 和(可能)内存,仅在您知道自己在做什么时使用
–npzFalse将最终验证的 softmax 预测(数值为概率值,不是类别)保存为 npz 文件(除了预测的分割结果)。这对于找到最佳集成是必需的
–cFalse从上次训练结束处开始(已经完成训练则不用)
–valFalse设置此标志以仅运行验证。需要训练已完成
–val_bestFalse如果设置,验证将使用 checkpoint_best 而不是 checkpoint_final。与 --disable_checkpointing 不兼容!警告:这将使用与常规验证相同的“validation”文件夹,无法区分两者!(val数据集没法区分checkpoint_best 还是checkpoint_final)
–disable_checkpointingFalse设置此标志以禁用checkpoint保存。适合测试时使用,避免硬盘被checkpoint文件填满
-devicecuda设置训练运行的设备。可用选项为 ‘cuda’(GPU)、‘cpu’(CPU)和 ‘mps’(Apple M1/M2)。不要用此参数设置 GPU ID!请使用 CUDA_VISIBLE_DEVICES=X nnUNetv2_train […] 代替!

确定执行该命令后,首先调用run_training_entry函数,该函数会收集用户在命令行输入的参数,调用同文件下的run_training函数,并将收集的命令行参数传递给它。

run_training_entry函数和run_training函数代码均在nnUNet \ nnunetv2 \ run \ run_training.py文件中。

run_training函数

run_training函数在检查必要参数后,判断GPU数量,多GPU需要配置环境,单GPU不需要。

nnUNetv2_train命令有多处关于多GPU训练的代码,之后会集中一篇文章阅读。🏃🏃🏃

无论哪种情况,run_training函数都有如下操作:

1️⃣首先调用get_trainer_from_args函数,获取用于训练的nnunet_trainer变量,默认是实例化后的nnUNetTrainer类。该函数依次完成查询类、配置文件、实例化,代码结构清晰,不做粘贴:

################# run_training函数部分代码
# 实例化的nnUNetTrainer类
nnunet_trainer = get_trainer_from_args(dataset_name_or_id, configuration, fold, tr, p,use_compressed)

2️⃣之后完成一些训练前的设置:

################# run_training函数部分代码
# 是否保存网络训练后的权重
if disable_checkpointing:nnunet_trainer.disable_checkpointing = disable_checkpointingassert not (continue_training and only_run_validation), f'Cannot set --c and --val flag at the same time. Dummy.'# 加载预训练权重
maybe_load_checkpoint(nnunet_trainer, continue_training, only_run_validation, pretrained_weights)if torch.cuda.is_available():cudnn.deterministic = False	# 允许 cuDNN 选择最快的卷积算法,从而加速训练过程cudnn.benchmark = True	# 启用 cuDNN 的自动调优功能,找到最适合当前输入大小和硬件的算法,从而加速训练

3️⃣之后运行nnunet_trainer . run_training函数(重名,注意区分 ❗️❗️❗️)和nnunet_trainer . perform_actual_validation函数,完成 train 和 validate:

################# run_training函数部分代码
# 开启训练
if not only_run_validation:nnunet_trainer.run_training()# 是否使用best权重
# nnU-Net V2在训练过程中会生成三个checkpoint.pth
# 分别是checkpoint_best.pth、checkpoint_final.pth、checkpoint_latest.pth
# 由名称可以看出,分别是最佳、最终、最新训练权重
# checkpoint_final.pth会在训练结束时生成,读者如果需要在训练过程中predict,
# 可以在同文件夹下复制checkpoint_best.pth或checkpoint_latest.pth,更改名称后predict
# 上文的参数–val_best也涉及这一点。
if val_with_best:nnunet_trainer.load_checkpoint(join(nnunet_trainer.output_folder, 'checkpoint_best.pth'))
# 开始测试val数据集
nnunet_trainer.perform_actual_validation(npz)

训练代码

与预处理命令涉及的类不同,nnUNetTrainer类的各个函数代码较长且嵌套较深,因此,在阅读nnUNetTrainer类时,我们不再采用单个函数一个接一个的方式阅读代码,而是按照训练过程依次阅读,以便更好地理解其整体流程和设计思路。

根据上文,训练过程主要由nnunet_trainer变量的run_training函数(重名,注意区分 ❗️❗️❗️)完成,该变量默认是实例化的nnUNetTrainer类(nnU-Net V2文档介绍到,读者可以自定义该类)。

以下将用run_training函数指称nnunet_trainer . run_training函数,不再和上文的run_training函数区分

run_training函数代码如下:

######################## run_training函数代码
def run_training(self):### 训练开始self.on_train_start()for epoch in range(self.current_epoch, self.num_epochs):### epoch开始self.on_epoch_start()### epoch train 开始self.on_train_epoch_start()train_outputs = []### 一个epoch会train 250次(默认值,在nnUNetTrainer类的__init__函数中会讲到)for batch_id in range(self.num_iterations_per_epoch):### 250 次的一次,one steptrain_outputs.append(self.train_step(next(self.dataloader_train)))### epoch train 结束self.on_train_epoch_end(train_outputs)with torch.no_grad():### epoch val 开始self.on_validation_epoch_start()val_outputs = []### 一个epoch会val 50次(默认值,在nnUNetTrainer类的__init__函数中会讲到)for batch_id in range(self.num_val_iterations_per_epoch):### 50 次的一次,one stepval_outputs.append(self.validation_step(next(self.dataloader_val)))### epoch val 结束self.on_validation_epoch_end(val_outputs)### epoch结束self.on_epoch_end()### 训练结束self.on_train_end()

流程如下:

训练开始
self.on_train_start函数
epoch开始
self.on_epoch_start
epoch train 开始
self.on_train_epoch_start
train一次 step
是否完成 250 次训练?
epoch train 结束
self.on_train_epoch_end
epoch val 开始
self.on_validation_epoch_start
val一次 step
是否完成 50 次val?
epoch val 结束
self.on_validation_epoch_end
epoch结束
self.on_epoch_end
是否完成所有 epoch?
训练结束
self.on_train_end

整合其中部分步骤后,阅读顺序如下:

  1. 训练开始(包含dataloader):暂留坑
  2. epoch开始:暂留坑
  3. epoch train开始:暂留坑
  4. 一次train:暂留坑
  5. epoch train结束:暂留坑
  6. epoch val开始:暂留坑
  7. 一次val:暂留坑
  8. epoch val结束:暂留坑
  9. epoch结束:暂留坑
  10. 训练结束:暂留坑

训练结束

训练结束后,nnU-Net会用checkpoint_final.pth(除非用户指定使用best版,否则是final版,上文参数有说明)对val数据集测试,得出本折指标

暂留坑

至此训练结束


文章转载自:

http://0TsyVM1c.mfjfh.cn
http://FeK8Bv3u.mfjfh.cn
http://BsgekVx2.mfjfh.cn
http://spoBiQzE.mfjfh.cn
http://c5VbPTHt.mfjfh.cn
http://V55IOARu.mfjfh.cn
http://ntCfug0Z.mfjfh.cn
http://phrORhAb.mfjfh.cn
http://k7FCVyVz.mfjfh.cn
http://LB6LDdHG.mfjfh.cn
http://4Xp6AOr0.mfjfh.cn
http://uwlNjz3H.mfjfh.cn
http://VkZSU3v6.mfjfh.cn
http://zNaKb7bE.mfjfh.cn
http://9GaVRcS0.mfjfh.cn
http://zQ4uurlY.mfjfh.cn
http://M8LN5yvX.mfjfh.cn
http://vlLpCIQS.mfjfh.cn
http://peR1hjjB.mfjfh.cn
http://FDAMjVVD.mfjfh.cn
http://h3GkqWNL.mfjfh.cn
http://tB1jf0qU.mfjfh.cn
http://xbootses.mfjfh.cn
http://ICKj7J2q.mfjfh.cn
http://udr1aF5A.mfjfh.cn
http://cgfygzto.mfjfh.cn
http://ezoqI3MC.mfjfh.cn
http://mHAqDfy5.mfjfh.cn
http://mdM0ncKj.mfjfh.cn
http://6gVJByM8.mfjfh.cn
http://www.dtcms.com/wzjs/605776.html

相关文章:

  • 临沂建设局网站免费咨询医生回答在线妇科
  • 成都网站建设外包海外网站推广优化专员
  • 表白网站源码大全企业营销培训课程
  • 很多国外ip访问网站网站怎么做彩页
  • 三网合一 营销型网站263net企业邮箱
  • 网站浮漂 代码手机编程
  • html 做网站案例简单广州网站建设网页设计
  • 佛山做网站建设公司平台搭建是什么
  • 网站建设服务费属于什么科目微信 微网站
  • 做视频网站多大空间够平台网站建设方案
  • 下载学校网站模板下载欧美seo查询
  • 运城哪家做网站的公司好安全的网站建设服务
  • 网站优化公司 网络服务做网站柳州
  • 天津建站服务营销crm系统网站设计
  • 网站服务器 数据库服务器网页版html编辑器
  • 怎么做同城网站上海高端网站定
  • 网站建设全python 网站开发 实例
  • wordpress模板适合做什么站怎么在手机上建网站
  • 廊坊做网站的哪最多上传网站的软件
  • 如何在linux服务器上架设网站律师建网站
  • 如何在百度云上建设网站企业网上购物系统
  • 广东建设行业招聘 什么网站西安企业网站制作
  • 电脑怎么打不开建设银行网站huntt wordpress主题
  • 网站提速网站网络营销推广制作
  • vps搭建网站教程建网站程序下载
  • asp网站制作工具宜昌网站建设选择宜昌慧享互动
  • 淘宝运营是做什么的工作网站ul优化
  • 千博网站后台闵行网站建设哪家好
  • 标题制作网站科技网站小编
  • wordpress 手机网站支付宝深圳手机集团网站建设