实例代码逐行解读

这些参数是通过 `argparse` 模块定义的命令行参数,通常用于控制深度学习模型训练的各种设置。以下是每个参数的详细说明:

1. **`--train_setting_flow`**: 整数类型,控制训练流程的设置。
   - 0: 从左到右(基本)
   - 1: 从右到左(基本)
   - 2: 双向(Twin)从左到右
   - 3: 双向(Twin)从右到左
   - 默认值为0。

2. **`--simple_model`**: 整数类型,选择模型的复杂度。
   - 0: 基础网络模型 复杂,计算量大
   - 1: 简单网络模型
   - 默认值为0。

3. **`--shared_model`**: 整数类型,控制模型共享设置(双向模型)。
   - 0: 共享模型
   - 1: 不共享
   - 2: 转移单支路学习
   - 默认值为0。

shared_model 参数选项的具体含义:

  1. 0 = 共享模型(Shared model)

    • 共享模型:两个分支共享相同的权重和结构。这样做的好处是减少参数数量,防止模型过拟合,也有助于将两个输入的相似性或差异直接映射到相同的特征空间。
    • 适用场景:当两个输入的特征或模式相似且希望它们共享相同的特征提取方式时,使用共享模型。
  2. 1 = 不共享模型(False)

    • 独立模型:两个分支拥有各自的权重和结构,不进行参数共享。这意味着每个分支会独立学习自己的特征,允许每个输入具有更加独立的特征提取过程。
    • 适用场景:当两个输入的模式或特征差异较大时,选择不共享模型可以让每个分支独立地学习和提取适合各自输入的特征。
  3. 2 = 单支路迁移学习(Transfer Single Branches Learning)

    • 单支路迁移学习:两个分支的某些层可能共享,或者一个分支的学习结果用于另一个分支。这种设置通常用于迁移学习场景,即将已经在一个任务上训练好的模型部分迁移到另一个任务中。
    • 适用场景:当一个分支已经在相关任务中训练好,另一分支需要通过迁移学习从第一个分支的知识中受益时,可以使用这种方式。

4. **`--exp_name`**: 字符串类型,实验的名称,默认值为 `"Experiment0Marconi100"`。

5. **`--input_height`**: 整数类型,输入图像的高度,默认值为192。

6. **`--input_width`**: 整数类型,输入图像的宽度,默认值为384。

7. **`--batch_size`**: 整数类型,训练时的批量大小,默认值为30。

8. **`--num_epochs`**: 整数类型,训练的轮次(epochs),默认值为100。

batch_sizenum_epochs 是在深度学习中常见的超参数,决定了模型训练时的数据处理方式。它们在训练过程中的作用如下:

. batch_size(批量大小)

batch_size 是指在一次前向传播和反向传播过程中,神经网络处理的样本数量。

  • 定义:在每次模型参数更新之前,神经网络使用的样本数量。
  • 常见值batch_size 可以是任意正整数,但常见的选择是 16、32、64、128 等。
  • 工作原理
    1. 数据集被分割成小批量(batch)来训练,而不是整个数据集一次性训练。
    2. 在每个批次(batch)上执行前向传播和反向传播,以更新模型参数。

优点

  • 小的 batch_size(如 32 或 64)可以减少内存使用,适合大型数据集或资源有限的硬件(如 GPU)。
  • 大的 batch_size(如 128 或 256)可以提高并行计算效率,加快训练速度,但可能需要更多内存。

权衡

  • 小的 batch size:更多参数更新步骤,训练更加精细,但收敛速度可能较慢。
  • 大的 batch size:更快的训练速度,但参数更新较粗糙,可能会导致训练不稳定或需要更高的学习率。

 num_epochs(训练轮数)

num_epochs 指模型完整地遍历整个训练数据集的次数。

  • 定义:模型对整个训练数据集进行一次训练称为一个 epoch。
  • 工作原理
    1. 数据集被分割成多个批次(batch)。
    2. 在一个 epoch 中,所有批次的样本都会被训练一次。
    3. 通常需要多个 epoch 才能让模型收敛,找到合适的参数。

优点

  • 较少的 epoch 数量:训练时间短,但可能模型还没有充分学习到数据特征。
  • 较多的 epoch 数量:允许模型充分训练,可以提高模型的泛化能力,但训练时间较长,且可能出现过拟合问题。

权衡

  • 过少的 epoch:模型可能未完全学习到数据的特征,导致欠拟合。
  • 过多的 epoch:模型可能过拟合训练数据,导致泛化能力下降。

总结:

  • batch_size 决定了每次参数更新时使用的数据量,影响训练速度和资源使用。
  • num_epochs 决定了模型完整地看多少遍数据,影响模型训练的程度和效果。

9. **`--lr`**: 浮点类型,初始学习率,默认值为0.01。

10. **`--train_size_set`**: 整数类型,训练集的大小,默认值为34240。

11. **`--test_size_set`**: 整数类型,测试集的大小,默认值为7191。

12. **`--k1`**: 整数类型,基本的k值,默认值为32。

13. **`--d1`**: 整数类型,基础的稠密神经元数量,默认值为300。

14. **`--alpha1`**: 浮点类型,超参数α1,默认值为0.2。

15. **`--alpha2`**: 浮点类型,超参数α2,默认值为0.7。

16. **`--alpha3`**: 浮点类型,超参数α3,默认值为0.1。

17. **`--learning_rate_decay`**: 整数类型,是否启用学习率衰减。
   - 1: 启用
   - 0: 不启用
   - 默认值为0。

18. **`--learning_rate_plateau`**: 整数类型,是否在监控损失时减少学习率。
   - 1: 启用
   - 0: 不启用
   - 默认值为0。

19. **`--decay_factor_lr`**: 浮点类型,学习率衰减因子,默认值为0.9。

20. **`--patience_decay`**: 整数类型,学习率衰减的耐心值,默认值为5。

21. **`--selected_imgs`**: 整数类型,控制选定的图像深度。
   - 1: 选定图像
   - 0: 整个数据集
   - 默认值为0。

22. **`--continue_fit`**: 字符串类型,控制是否继续训练。
   - 0: 不继续
   - 其他值:继续训练,指定检查点的名称(例如030)
   - 默认值为'0'。

23. **`--gpus`**: 整数类型,使用的GPU数量,默认值为1。

24. **`--gpuids`**: 字符串类型,使用的GPU ID,默认值为'0'(可以是多个ID,如0,1,2,3等)。

这些参数可以帮助用户在命令行中灵活地配置模型训练的各项设置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/427771.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang | Leetcode Golang题解之第417题太平洋大西洋水流问题

题目: 题解: type pair struct{ x, y int } var dirs []pair{{-1, 0}, {1, 0}, {0, -1}, {0, 1}}func pacificAtlantic(heights [][]int) (ans [][]int) {m, n : len(heights), len(heights[0])pacific : make([][]bool, m)atlantic : make([][]bool, …

ansible远程自动化运维、常用模块详解

一、ansible是基于python开发的配置管理和应用部署工具;也是自动化运维的重要工具;可以批量配置、部署、管理上千台主机;只需要在一台主机配置ansible就可以完成其它主机的操作。 1.操作模式: 模块化操作,命令行执行…

Vue 依赖注入组件通信:provide / inject 使用详解

引言 在 Vue.js 中,我们经常会遇到组件之间需要共享数据的情况。一种常见的解决方案是通过 props 和 $emit 事件来进行数据传递,但对于多层嵌套的组件结构或共享状态的场景,这种方式显得繁琐而不直观。 幸运的是,Vue.js 提供了一…

web渗透—RCE

一:代码执行 相关函数 1、eval()函数 assert()函数 (1)原理:将用户提交或者传递的字符串当作php代码执行 (2)passby:单引号绕过:闭合注释;开启GPC的话就无法绕过(GPC就是将单引号转换为"反斜杠单引号"&a…

希亦超声波清洗机值得购买吗?百元清洁技术之王,大揭秘!

现代社会的高速发展,很多人由于工作繁忙的原因,根本没有时间去清洗自己的日常物品,要知道这些日常物品堆积灰尘之后是很容易就滋生细菌的,并且还会对人体的健康造成一定的危害!这个时候很多人就会选择购买一台超声波清…

什么是CSRF攻击,该如何防护CSRF攻击

CSRF攻击(跨站请求伪造,Cross-Site Request Forgery)是一种网络攻击手段,攻击者利用已通过身份验证的用户,诱导他们在不知情的情况下执行未授权操作。这种攻击通常发生在用户登录到可信网站并且有活动的会话时&#xf…

Python编码系列—Python组合模式:构建灵活的对象组合

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

cv2.bitwise_or 提取ROI区域

原图如下所示,想提取圆形ROI区域,红色框 img np.ones(ori_img.shape, dtype"uint8") img img * 255 cv2.circle(img, (50,50), 50, 0, -1) self.bitwiseOr cv2.bitwise_or(ori_img, circle)使用一个和原图尺寸一致的图像做mask,图白圆黑 以…

MySQL:索引02——使用索引

目录 引言 1、自动创建索引 2、手动创建索引 2.1 主键索引 2.2 查看索引信息 2.3 唯一索引 2.4 普通索引 2.5 复合索引 3、删除索引 3.1 主键索引 3.2 其他索引 4、查看执行计划 4.1 不加条件,查询所有 4.2 使用主键查询 4.3 子查询使用索引 4.4 普通索…

【架构设计】多级缓存:应用案例与问题解决策略

【架构设计】多级缓存:应用案例与问题解决策略 多级缓存系统的工作原理及其在提升应用性能方面的关键作用。通过对比本地缓存与分布式缓存的特点 | 原创作者/编辑:凯哥Java | 分类:架构设计系列教程 多级缓存…

在基准测试和规划测试中选Flat还是Ramp-up?

Flat测试和Ramp-up测试是各有优势的,下面我们就通过介绍几种实用的性能测试策略来分析这两种加压策略的着重方向。 基准测试 基准测试是一种测量和评估软件性能指标的活动,通过基准测试建立一个已知的性能水平(称为基准线)&…

WPS生成目录

导航窗格:视图->导航窗格 可修改标题的样式,之后的标题直接套用即可 修改其他标题样式也是这样 添加编号:可以选上面的模版 也可自定义编号 生成目录:引用->目录->选用一个 但是我想把目录插到另一页 当我添加几个标题…

Spark-RDD持久化

一、Spark的三种持久化机制 1、cache 它是persist的一种简化方式,作用是将RDD缓存到内存中,以便后续快速访问,提高计算效率。cache操作是懒执行的,即执行action算子时才会触发。 2、persist 它提供了不同的存储级别&#xff0…

无人机黑飞打击技术详解

随着无人机技术的普及,无人机“黑飞”(未经授权或违反规定的飞行)现象日益严重,对公共安全、隐私保护及重要设施安全构成了严重威胁。为有效应对这一挑战,各国政府和安全机构纷纷研发并部署了一系列无人机黑飞打击技术…

HTML简介

HTML简介 1.HTML概述2.HTML元素3.HTML属性4.HTML 注释5.HTML颜色 1.HTML概述 HTML 是用来描述网页的一种语言。 HTML 指的是超文本标记语言HTML 不是一种编程语言&#xff0c;而是一种标记语言标记语言是一套标记标签HTML 使用标记标签来描述网页 例子&#xff1a; <htm…

Kotlin cancel CoroutineScope.launch的任务后仍运行

Kotlin cancel CoroutineScope.launch的任务后仍运行 import kotlinx.coroutines.*fun main() {runBlocking {val coroutineScope CoroutineScope(Dispatchers.IO)val job coroutineScope.launch {var i 0while (i < Int.MAX_VALUE) {iprintln(i)}}// 2ms 取消协程delay(…

2.计算机网络基础

2. 计算机网络基础 (1) 计算机网络的定义 计算机网络是指将地理位置不同、具有独立功能的多个计算机系统通过通信线路和设备连接起来,以功能完善的网络软件实现网络中资源共享的系统。最简单的定义是:计算机网络是一些互相连接的、自治的计算机系统的集合。最庞大的计算机网…

在 PostGIS 中进行千万级空间数据的空间查询和关键字查询

一、目的 本测试在探究在有限的计算机配置下&#xff0c;如何高效地对千万级的空间数据进行空间查询和关键字查询。通过实际操作和测试&#xff0c;评估不同查询策略的性能&#xff0c;为处理大规模空间数据提供可行的解决方案。 计算机配置如下&#xff1a; 内存&#xff0…

声网SDK脚本运行错误

文章目录 运行步骤无法运行.bat电脑出现警告--更改执行策略若无出现-更新power shell搜索最新版本的 PowerShell安装新版本 仍无法解决-手动下载第三方库 2024-9-9运行步骤 无法运行.bat 电脑出现警告–更改执行策略 若无出现-更新power shell 搜索最新版本的 PowerShell 在…

记录|如何对批量型的pictureBox组件进行批量Image设置

目录 前言一、问题表述二、批量化处理更新时间 前言 参考文章&#xff1a; 一、问题表述 问题就是上图所示&#xff0c;这些的命名风格统一&#xff0c;只是最后的数字是不同的。所以存在可以批量化进行处理的可能性。 二、批量化处理 private void SetPictureBoxImages(){for…