Azure - 机器学习:自动化机器学习中计算机视觉任务的超参数

news2024/11/26 4:50:27

Azure Machine Learning借助对计算机视觉任务的支持,可以控制模型算法和扫描超参数。 这些模型算法和超参数将作为参数空间传入以进行扫描。

关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。

file

前置信息

本文适用于Azure - 机器学习:使用自动化机器学习训练计算机视觉模型 的任务中:
https://techlead.blog.csdn.net/article/details/134286386

一、Azure中特定于模型的超参数

下表汇总了特定于 yolov5 算法的超参数。

参数名称说明默认
validation_metric_type用于验证指标的指标计算方法。
必须为 nonecocovoccoco_vocvoc
validation_iou_threshold计算验证指标时框匹配的 IOU 阈值。
必须是 [0.1, 1] 范围内的浮点数。0.5
img_size用于训练和验证的图像大小。
必须是正整数。
注意:如果大小太大,训练运行可能会遇到 CUDA OOM 错误。

| 640 |
| model_size | 模型大小。
必须为 smallmediumlargexlarge

注意:如果模型大小太大,训练运行可能会遇到 CUDA OOM 错误。

| medium |
| multi_scale | 通过在 +/- 50% 范围内改变图像大小来启用多比例图像
必须为 0 或 1。

注意:如果 GPU 内存不足,训练运行可能会遇到 CUDA OOM 错误。

| 0 |
| box_score_thresh | 在推理期间,仅返回分数大于 box_score_thresh 的建议。 该分数是对象性分数和分类概率的乘积。
必须是 [0, 1] 范围内的浮点数。 | 0.1 |
| nms_iou_thresh | 在非最大抑制后处理中进行推理期间使用的 IOU 阈值。
必须是 [0, 1] 范围内的浮点数。 | 0.5 |
| tile_grid_size | 用于平铺每个图像的网格大小。
注意:若要启用小物体检测逻辑,tile_grid_size 不得为 None
作为字符串传递的、由两个整数构成的元组。 示例:–tile_grid_size “(3, 2)” | 无默认值 |
| tile_overlap_ratio | 每个维度中相邻图块之间的重叠率。
必须是 [0, 1) 范围内的浮点数 | 0.25 |
| tile_predictions_nms_thresh | 合并图块和图像的预测结果时用于执行 NMS 的 IOU 阈值。 在验证/推理中使用。
必须是 [0, 1] 范围内的浮点数 | 0.25 |

下表汇总了特定于 maskrcnn_* 的超参数,用于推理期间的实例分段。

参数名称说明默认
mask_pixel_score_threshold记录将像素作为部分对象掩码的临界分数。0.5
max_number_of_polygon_points从掩码转换后,多边形中 (x, y) 坐标对的最大数量。100
export_as_image将掩码导出为图像。错误
image_type掩码导出为的图像类型(选项有 jpg、png、bmp)。JPG

二、与模型无关的超参数

下表描述了与模型无关的超参数。

参数名称说明默认
number_of_epochs训练循环数。
必须是正整数。15
yolov5 除外:30)
training_batch_size训练批大小。
必须是正整数。多类/多标签:78
(vit-variants 除外:
vits16r224:128
vitb16r224:48
vitl16r224:10)
物体检测:2
yolov5 除外:16)

实例分段:2

注意:默认值是可以在 12 GiB GPU 内存上使用的最大批大小。

|
| validation_batch_size | 验证批大小。
必须是正整数。 | 多类/多标签:78
(vit-variants 除外:
vits16r224:128
vitb16r224:48
vitl16r224:10)

物体检测:1
yolov5 除外:16)

实例分段:1

注意:默认值是可以在 12 GiB GPU 内存上使用的最大批大小。

|
| grad_accumulation_step | 梯度累积是指在累积这些步骤的梯度的同时运行所配置数量的 grad_accumulation_step(不更新模型权重),然后使用累积的梯度来计算权重更新。
必须是正整数。 | 1 |
| early_stopping | 在训练期间启用提前停止逻辑。
必须为 0 或 1。 | 1 |
| early_stopping_patience | 在运行停止之前未经过主要指标
改进的最小循环数或验证评估数。
必须是正整数。 | 5 |
| early_stopping_delay | 在跟踪主要指标改进以便提前停止之前
要等待完成的最小循环数或验证评估数。
必须是正整数。 | 5 |
| learning_rate | 初始学习速率。
必须是 [0, 1] 范围内的浮点数。 | 多类:0.01
(vit-variants 除外:
vits16r224:0.0125
vitb16r224:0.0125
vitl16r224:0.001)

多标签:0.035
(vit-variants 除外:
vits16r224:0.025
vitb16r224:0.025
vitl16r224:0.002)

物体检测:0.005
yolov5 除外:0.01)

实例分段:0.005

|
| lr_scheduler | 学习速率计划程序的类型。
必须为 warmup_cosinestep。 | warmup_cosine |
| step_lr_gamma | 学习速率计划程序为 step 时的 gamma 值。
必须是 [0, 1] 范围内的浮点数。 | 0.5 |
| step_lr_step_size | 学习速率计划程序为 step 时的步长大小值。
必须是正整数。 | 5 |
| warmup_cosine_lr_cycles | 学习速率计划程序为 warmup_cosine 时的余弦周期值。
必须是 [0, 1] 范围内的浮点数。 | 0.45 |
| warmup_cosine_lr_warmup_epochs | 学习速率计划程序为 warmup_cosine 时的预热循环值。
必须是正整数。 | 2 |
| optimizer | 优化器的类型。
必须为 sgdadamadamw。 | sgd |
| momentum | 优化器为 sgd 时的动量值。
必须是 [0, 1] 范围内的浮点数。 | 0.9 |
| weight_decay | 优化器为 sgdadamadamw 时的权重衰减值。
必须是 [0, 1] 范围内的浮点数。 | 1e-4 |
| nesterov | 当优化器为 sgd 时启用 nesterov
必须为 0 或 1。 | 1 |
| beta1 | 当优化器为 adamadamw 时的 beta1 值。
必须是 [0, 1] 范围内的浮点数。 | 0.9 |
| beta2 | 当优化器为 adamadamw 时的 beta2 值。
必须是 [0, 1] 范围内的浮点数。 | 0.999 |
| amsgrad | 当优化器为 adamadamw 时启用 amsgrad
必须为 0 或 1。 | 0 |
| evaluation_frequency | 评估验证数据集以获得指标分数所遵循的频率。
必须是正整数。 | 1 |
| checkpoint_frequency | 存储模型检查点所遵循的频率。
必须是正整数。 | 验证时具有最佳主要指标的循环中的检查点。 |
| checkpoint_run_id | 具有用于增量训练的预训练检查点的试验的运行 ID。 | 无默认值 |
| checkpoint_dataset_id | FileDataset ID,其中包含用于增量训练的预训练检查点。 确保将 checkpoint_filenamecheckpoint_dataset_id 一起传递。 | 无默认值 |
| checkpoint_filename | FileDataset 中用于增量训练的预训练检查点文件名。 确保将 checkpoint_dataset_idcheckpoint_filename 一起传递。 | 无默认值 |
| layers_to_freeze | 要为模型冻结的层数。 例如,传递 2 作为 seresnext 值意味着冻结引用下面的受支持模型层信息的 layer0 和 layer1。
必须是正整数。

'resnet': [('conv1.', 'bn1.'), 'layer1.', 'layer2.', 'layer3.', 'layer4.'],
'mobilenetv2': ['features.0.', 'features.1.', 'features.2.', 'features.3.', 'features.4.', 'features.5.', 'features.6.', 'features.7.', 'features.8.', 'features.9.', 'features.10.', 'features.11.', 'features.12.', 'features.13.', 'features.14.', 'features.15.', 'features.16.', 'features.17.', 'features.18.'],
'seresnext': ['layer0.', 'layer1.', 'layer2.', 'layer3.', 'layer4.'],
'vit': ['patch_embed', 'blocks.0.', 'blocks.1.', 'blocks.2.', 'blocks.3.', 'blocks.4.', 'blocks.5.', 'blocks.6.','blocks.7.', 'blocks.8.', 'blocks.9.', 'blocks.10.', 'blocks.11.'],
'yolov5_backbone': ['model.0.', 'model.1.', 'model.2.', 'model.3.', 'model.4.','model.5.', 'model.6.', 'model.7.', 'model.8.', 'model.9.'],
'resnet_backbone': ['backbone.body.conv1.', 'backbone.body.layer1.', 'backbone.body.layer2.','backbone.body.layer3.', 'backbone.body.layer4.']

| 无默认值 |


三、图像分类(多类和多标签)特定的超参数

下表汇总了图像分类(多类和多标签)任务的超参数。

参数名称说明默认
weighted_loss0 表示无加权损失。
1 表示使用 sqrt.(class_weights) 计算的加权损失
2 表示使用 class_weights 计算的加权损失。
必须为 0、1 或 2。0
valid_resize_size- 在为验证数据集裁剪之前要将图像调整到的大小。
  • 必须是正整数。

    说明:

  • seresnext不取任意大小。

  • 注意:如果大小太大,训练运行可能会遇到 CUDA OOM 错误。 | 256 |
    | valid_crop_size | - 输入到神经网络的用于验证数据集的图像裁剪大小。

  • 必须是正整数。

    说明:

  • seresnext不取任意大小。

  • ViT-variants 应该拥有相同的 valid_crop_sizetrain_crop_size

  • 注意:如果大小太大,训练运行可能会遇到 CUDA OOM 错误。 | 224 |
    | train_crop_size | - 输入到神经网络的用于训练数据集的图像裁剪大小。

  • 必须是正整数。

    说明:

  • seresnext不取任意大小。

  • ViT-variants 应该拥有相同的 valid_crop_sizetrain_crop_size

  • 注意:如果大小太大,训练运行可能会遇到 CUDA OOM 错误。 | 224 |


四、对象检测和实例分段任务特定的超参数

以下超参数用于物体检测和实例分段任务。

警告

yolov5 算法不支持这些参数。 有关 yolov5 支持的超参数,请参阅模型特定的超参数部分。

参数名称说明默认
validation_metric_type用于验证指标的指标计算方法。
必须为 nonecocovoccoco_vocvoc
validation_iou_threshold计算验证指标时框匹配的 IOU 阈值。
必须是 [0.1, 1] 范围内的浮点数。0.5
min_size在将图像馈送到主干之前要将其重新缩放到的最小大小。
必须是正整数。
注意:如果大小太大,训练运行可能会遇到 CUDA OOM 错误。

| 600 |
| max_size | 在将图像馈送到主干之前要将其重新缩放到的最大大小。
必须是正整数。

注意:如果大小太大,训练运行可能会遇到 CUDA OOM 错误。

| 1333 |
| box_score_thresh | 在推理期间,仅返回分类分数大于 box_score_thresh 的建议。
必须是 [0, 1] 范围内的浮点数。 | 0.3 |
| nms_iou_thresh | 预测头的非最大抑制 (NMS) 中使用的 IOU(交并比)阈值。 在推理期间使用。
必须是 [0, 1] 范围内的浮点数。 | 0.5 |
| box_detections_per_img | 所有类的每个图像的最大检测次数。
必须是正整数。 | 100 |
| tile_grid_size | 用于平铺每个图像的网格大小。
注意:若要启用小物体检测逻辑,tile_grid_size 不得为 None
作为字符串传递的、由两个整数构成的元组。 示例:–tile_grid_size “(3, 2)” | 无默认值 |
| tile_overlap_ratio | 每个维度中相邻图块之间的重叠率。
必须是 [0, 1) 范围内的浮点数 | 0.25 |
| tile_predictions_nms_thresh | 合并图块和图像的预测结果时用于执行 NMS 的 IOU 阈值。 在验证/推理中使用。
必须是 [0, 1] 范围内的浮点数 | 0.25 |

关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

美国Embarcadero公司正式发布2023 RAD Studio Delphi C++ Builder 12 Athens

Embarcadero 非常高兴地宣布发布 RAD Studio 12 Athens 以及 Delphi 12 和 CBuilder 12。RAD Studio 12 Athens 版本包含令人兴奋的新功能,为该产品的未来奠定了基础。 目录 主要新功能 C 的奇妙之处Delphi 的一些不错的补充FireMonkey 和 Skia 作为新基金会采用 MD…

设计模式(3)-结构型模式

结构型模式 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。 由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则…

从浏览器输入一个URL到最终展示出页面,中间会发送哪些事儿?

文章目录 前言一. DNS域名解析二. 进行封装三. 进行传输四. 到达服务器后层层分用五. 服务器把响应数据重新封装六. 响应数据进行传输七. 到达客户端层层分用八. 将网页渲染到浏览器上 前言 当你输入一个网址:www.baidu.com时,浏览器究竟做了哪些工作才…

C++ Qt 学习(四):自定义控件与 qss 应用

1. qss 简介 Qt style sheet(qss,Qt 样式表),不需要用 C 代码控件进行重载,就可以修改控件外观,类似于前端的 css 2. qss 选择器 2.1 通配符选择器 /* 设置后控件窗口背景色都被修改为黄色 */ * {backg…

如何在Android平板上远程连接Ubuntu服务器code-server进行代码开发?

文章目录 1.ubuntu本地安装code-server2. 安装cpolar内网穿透3. 创建隧道映射本地端口4. 安卓平板测试访问5.固定域名公网地址6.结语 1.ubuntu本地安装code-server 准备一台虚拟机,Ubuntu或者centos都可以,这里以VMwhere ubuntu系统为例 下载code serve…

Vue3使用vue-print-nb插件打印功能

插件官网地址https://www.npmjs.com/package/vue-print-nb 效果展示: 打印效果 根据不同的Vue版本安装插件 //Vue2.0版本安装方法 npm install vue-print-nb --save pnpm install vue-print-nb --save yarn add vue-print-nb//Vue3.0版本安装方法: npm install vue3…

CentOS Linux 系统镜像

CentOS Linux具有以下特点: 稳定性:CentOS Linux旨在提供一个稳定、可靠的服务器环境,适合用于关键业务应用和生产环境。高效性:CentOS Linux经过优化和调整,可以充分发挥硬件的性能,提高系统的整体效率。…

2023 年最新腾讯官方 QQ 机器人(QQ 群机器人 / QQ 频道机器人)超详细开发教程

注册 QQ 开放平台账号 QQ 开放平台是腾讯应用综合开放类平台,包含 QQ 机器人、QQ 小程序、QQ 小游戏 等集成化管理,也就是说你注册了QQ 开放平台,你开发 QQ 机器人还是 QQ 小程序都是在这个平台进行部署上线和管理。 如何注册 QQ 开放平台账…

element ui:常用的组件使用情况记录

前言 将element ui使用过程中一些常用的组件使用情况记录如下 组件 el-tree树组件 树父子节点成一列显示 没有进行设置之前显示效果 设置之后显示效果 ​​​​ 主要代码如下 <el-treeicon-class"none"expand-on-click-node"false"style"…

【uniapp/uview】Collapse 折叠面板更改右侧小箭头图标

最终效果是这样的&#xff1a; 官方没有给出相关配置项&#xff0c;后来发现小箭头不是 uview 的图标&#xff0c;而是 unicode 编码&#xff0c;具体代码&#xff1a; // 箭头图标 ::v-deep .uicon-arrow-down[data-v-6e20bb40]:before {content: \1f783; }附一个查询其他 u…

HTML+CSS、Vue+less+、HTML+less 组件封装实现二级菜单切换样式跑(含全部代码)

一、HTMLCSS二级菜单 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document</title><…

蓝桥杯国一,非ACMer选手保姆级经验分享

目录 一、前言二、蓝桥杯简介三、0基础计算机新手小白&#xff0c;赛前如何准备提高自己的获奖率&#xff1f;3.1 每两周参加一次【蓝桥算法双周赛】3.2 多练真题3.3 参加每一场官方校内模拟赛 四、结语 一、前言 hello&#xff0c;大家好&#xff0c;我是大赛哥(弟)&#xff…

2023.11-9 hive数据仓库,概念,架构

目录 一.HDFS、HBase、Hive的区别 二.大数据相关软件 三. Hive 的优缺点 1&#xff09;优点 2&#xff09;缺点 四. Hive 和数据库比较 1&#xff09;查询语言 2&#xff09;数据更新 3&#xff09;执行延迟 4&#xff09;数据规模 五.hive架构流程 六.MetaStore元…

Could not load library libcudnn_cnn_train.so.8, 解决类似问题的思路与方法

完整报错 Could not load library libcudnn_cnn_train.so.8. Error: /home/ai/anaconda3/envs/ai/bin/../lib/libcudnn_ops_train.so.8: undefined symbol: _ZN5cudnn3ops26JoinInternalPriorityStreamEP12cudnnContexti, version libcudnn_ops_infer.so.8 错误原因 该错误其…

Tcl语言:基础入门(一)

Tcl语言https://blog.csdn.net/weixin_45791458/category_12488978.html?spm1001.2014.3001.5482 Tcl语言是一种脚本语言&#xff0c;类似于Bourne shell(sh)、C shell&#xff08;csh&#xff09;、Bourne-Again Shell(bash)等UNIX shell语言。Shell程序主要作为胶水缝合其他…

[100天算法】-定长子串中元音的最大数目(day 67)

题目描述 给你字符串 s 和整数 k 。请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。英文中的 元音字母 为&#xff08;a, e, i, o, u&#xff09;。示例 1&#xff1a;输入&#xff1a;s "abciiidef", k 3 输出&#xff1a;3 解释&#xf…

Excel和Chatgpt是最好的组合。

内容来源&#xff1a;bitfool1 Excel和Chatgpt是最好的组合。 您可以轻松地自动化数据处理。 我向您展示如何在不打字公式的情况下将AI与Excel一起使用&#xff1a; 建立chatgpt 主要目的是使用Chatgpt自动编写Excel宏。 这消除了键入公式的需求&#xff0c;并让您在自然语言…

53基于matlab的Tamura纹理特征提取

基于matlab的Tamura纹理特征提取&#xff0c;包括粗糙度、对比度、方向度、线性度、规则度、粗糙度六种&#xff0c;可替换自己的数据进行特征提取。程序已调通&#xff0c;可直接运行。 53 方向度、线性度、规则度 (xiaohongshu.com)

axios请求的问题

本来不想记录&#xff0c;但是实在没有办法&#xff0c;因为总是会出现post请求&#xff0c;后台接收不到数据的情况,还是记录一下如何的解决的比较好。 但是我使用export const addPsiPurOrder data > request.post(/psi/psiPurOrder/add, data); 下面是封装的代码。后台接…

系列一、Shiro概述

一、概述 Shiro是一款主流的Java安全框架&#xff0c;不依赖任何容器&#xff0c;可以运行在JavaSE 和 JavaEE项目中&#xff0c;它的主要作用是对访问系统的用户进行身份认证、授权、会话管理、加密等操作。 一句话&#xff1a;Shiro是一个用来解决安全管理的系统框架&#x…