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

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产品研发负责人。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MYSQL函数,一篇文章看完!

做程序员的谁会离得开数据库呢?今天就来分享一下我整理的MySQL的常用函数,基本上囊括了平时要用的函数,它们已经陪我走过了不少年头了,风里来雨里去,缝缝补补又几年,希望能帮到你们! 如果数据库…

UltraEdit2024免费版文本编辑器

我们必须承认软件员使用的编辑器或代码编辑器是一款强大 IDE 的重要组成部分,它是任何 IDE 的核心基础。用户量向我们证明了UEStudio 基于著名的 UltraEdit 进行构建,同样,软件的主干非常成熟和稳定,并且已经被证实成为文本和软件…

Python 标准库 subprocess 模块详解

1. Subprocess模块介绍 1.1 基本功能 subprocess 模块,允许生成新的进程执行命令行指令,python程序,以及其它语言编写的应用程序, 如 java, c,rust 应用等。subprocess可连接多个进程的输入、输出、错误管道,并且获取它们的返回…

龙芯loongarch64服务器编译安装scipy

前言 根据我之前的文章介绍,龙芯loongarch64服务器中的很多python依赖包安装有问题,发现其中安装的"scikit-learn"就无法正常使用,所有这里在 pip3 install scikit-learn -U -i https://pypi.tuna.tsinghua.edu.cn/simple 的时候发…

酷开系统,让这个秋天更有温度

在这个秋意渐浓的季节,你是不是也在寻找一种方式,让这个秋天变得更加温暖和充满活力?随着科技的不断发展,智能电视已经成为家庭娱乐的重要载体,酷开系统,作为智能电视行业的佼佼者,不仅提供了海…

Linux常用命令——cal命令

在线Linux命令查询工具 cal 显示当前日历或指定日期的日历 补充说明 cal命令用于显示当前日历,或者指定日期的日历。 语法 cal(选项)(参数)选项 -l:显示单月输出; -3:显示临近三个月的日历; -s:将星…

client-go controller-runtime kubebuilder

背景 这半年一直做k8s相关的工作,一直接触client-go controller-runtime kubebuilder,但是很少有文章将这三个的区别说明白,直接用框架是简单,但是出了问题就是黑盒,这不符合我的理念,所以这篇文章从头说起…

【Java 进阶篇】Java Filter 过滤器链详解

过滤器(Filter)是 Java Web 应用中重要的组件之一,它用于在请求到达 Servlet 之前或响应返回客户端之前对请求和响应进行处理。在实际开发中,我们可能会使用多个过滤器来完成不同的任务,这就引出了过滤器链的概念。本文…

Qt 自定义分页控件

目录 前言1、功能描述2、代码实现2.1 ui文件2.1 头文件2.2 源码文件2.3 设计思路 4、示例5、总结 前言 在应用程序开发时经常会遇到数据分页的需求,每一页展示特定数量的数据,通过点击按钮翻页或者输入页码跳转到指定页。 本文介绍一个自定义分页控件&a…

【Spring】静态代理

例子: 租房子 角色: 我 (I ) 中介( Proxy ) 房东( host ) Rent 接口 package org.example;public interface Rent {void rent(); }房东 package org.example;public class Host implements Rent{Overridepublic void rent() …

立体相机标定

相机成像过程中涉及的4个坐标系: 1、世界坐标系:由用户定义的三维世界坐标系,描述物体和相机在真实世界中的位置,原点可以任意选择。 2、相机坐标系:以相机的光心为坐标原点,X轴和Y轴平行于图像坐标系的X轴…

uniapp实现在线PDF文件预览

下载pdf文件放在static文件夹下 bug&#xff1a;hbuildX创建的项目pdf文件夹可以放在根目录下面&#xff0c;但是cli创建的项目无法预览&#xff0c;只能放在static下面 按钮跳转预览页面 <button click"toPdf">pdf</button>methods: {toPdf() {uni.…

接口测试|HttpRunner模拟发送GET请求自动生成测试报告

HttpRunner模拟发送GET请求&自动生成测试报告 前面说到&#xff0c;HttpRunner必须使用yaml或者json文件来进行使用&#xff0c;测试场景文件推荐使用yaml文件进行编辑。 httprunner 项目下yaml文件的格式 在python项目下新建一个 testcases 文件夹&#xff0c;然后再新…

K8s----资源管理

目录 一、Secret 1、创建 Secret 1.1 用kubectl create secret命令创建Secret 1.2 内容用 base64 编码&#xff0c;创建Secret 2、使用方式 2.1 将 Secret 挂载到 Volume 中&#xff0c;以 Volume 的形式挂载到 Pod 的某个目录下 2.2 将 Secret 导出到环境变量中 二、Co…

一文概览NLP句法分析:从理论到PyTorch实战解读

本文全面探讨了自然语言处理&#xff08;NLP&#xff09;中句法分析的理论与实践。从句法和语法的定义&#xff0c;到各类句法理论和方法&#xff0c;文章细致入微地解析了句法分析的多个维度。最后&#xff0c;通过PyTorch的实战演示&#xff0c;我们展示了如何将这些理论应用…

【C++】STL容器适配器——queue类的使用指南(含代码使用)(18)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; 目录 一、queue 类——基本介绍二、queue 类…

Milvus Cloud——Agent 框架工作方式

Agent 框架工作方式 我们以 AutoGPT 为例&#xff0c;看看一个 Agent 框架具体是如何工作的&#xff1a; AutoGPT[2] 使用 GPT-4 来生成任务、确定优先级并执行任务&#xff0c;同时使用插件进行互联网浏览和其他访问。AutoGPT 使用外部记忆来跟踪它正在做什么并提供上下文&am…

(免费领源码)Node.js#koa#MySQL精品课程网站27724-计算机毕业设计项目选题推荐

目 录 摘要 1 绪论 1.1研究背景 1.2研究现状及意义 1.3koa框架 1.4论文结构与章节安排 2精品课程网站系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.3.2数据修改流程 2.3.3数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析…

如何捕捉牛熊转变的信号,澳福认为只需了解一个模式

在过去的交易市场&#xff0c;当所有的多头都买了&#xff0c;没有新的买家时&#xff0c;牛市就结束了。但是在今天的交易市场&#xff0c;激进的卖空者也会出现在趋势的顶部&#xff0c;澳福知道这个事实会改变重要趋势结束时的市场行为。当多头让位于空头时&#xff0c;牛市…

计蒜客详解合集(1)期

以后对于简单题目&#xff0c;大致6道题目出一期&#xff0c;稍有难度的才单独一期发布~ 目录 T1266——出勤记录 T1170——人民币支付 T1122——最长最短单词 T1115——字符串判等 T1116——验证子串 T1118——删除单词后缀 T1266——出勤记录 小蒜的算法课老师每次…