图像度量学习训练(raw)

如果您的业务场景涉及度量学习,则可以通过图像度量学习训练(raw)组件构建度量学习模型,从而进行模型推理。本文为您介绍图像度量学习训练(raw)组件的配置方法和使用示例。

前提条件

已开通OSS并完成授权,详情请参见开通OSS服务云产品依赖与授权:Designer

功能限制

支持的计算引擎为DLC。

算法简介

图像度量学习训练(raw)组件提供了resnet50、resnet18、resnet34、resnet101、swint_tiny、swint_small、swint_base、vit_tiny、vit_small、vit_base、xcit_tiny、xcit_smallxcit_base等主流模型。

可视化配置组件

  • 输入桩

    输入桩(从左到右)

    限制数据类型

    建议上游组件

    是否必选

    训练数据标注文件

    OSS

    OSS数据

    评估数据标注文件

    OSS

    OSS数据

  • 组件参数

    页签

    参数

    是否必选

    描述

    默认值

    字段设置

    度量学习模型类型

    训练模型使用的算法类型,支持以下取值:

    • 数据并行的度量学习

    • 模型并行的度量学习

    数据并行的度量学习

    保存训练输出的oss目录

    存储训练模型的OSS目录,比如:oss://examplebucket/yun****/designer_test

    训练数据标注结果文件路径

    如果您没有通过输入桩配置训练数据标注文件,则需要配置该参数。

    说明

    如果您同时通过输入桩和该参数配置了训练数据标注文件,则优先使用输入桩配置的数据。

    训练数据标注文件所在的OSS路径,比如:oss://examplebucket/yun****/data/imagenet/meta/train_labeled.txt

    其中train_labeled.txt文件每行的存储格式为:绝对路径/图片名称.jpg label_id

    重要

    图片存放路径label_id之间使用空格分隔。

    验证数据标注结果文件路径

    如果您没有通过输入桩配置评估数据标注文件,则需要配置该参数。

    说明

    如果您同时通过输入桩和该参数配置了验证数据标注文件,则优先使用输入桩配置的数据。

    验证数据标注文件所在的OSS路径,比如:oss://examplebucket/yun****/data/imagenet/meta/val_labeled.txt

    其中val_labeled.txt文件每行的存储格式为:绝对路径/图片名称.jpg label_id

    重要

    图片存放路径label_id之间使用空格分隔。

    类别名称列表文件

    支持直接写入类别名称,或设置为存有类别名称的txt文件所在的OSS路径。

    数据源格式

    输入数据的格式类型,支持ClsSourceImageListClsSourceItag

    ClsSourceImageList

    预训练模型oss路径

    如果您有自己的预训练模型,则将该参数配置为预训练模型的OSS路径。如果没有配置该参数,则使用PAI提供的默认预训练模型。

    参数设置

    度量学习模型使用的backbone

    选择使用的主流模型,支持以下取值:

    • resnet_50

    • resnet_18

    • resnet_34

    • resnet_101

    • swin_transformer_tiny

    • swin_transformer_small

    • swin_transformer_base

    resnet50

    图片resize大小

    图片调整后的大小,单位为像素。

    224

    bachbone输出的特征维度

    设置主流模型输出的特征维度,整数。

    2048

    特征输出的特征维度

    设置Neck输出的特征维度,整数。

    1536

    训练数据分类标注的类别数目

    度量学习设置的输出维度数目。

    度量学习模型使用的损失函数

    损失函数用来评估训练模型预测值与真实值不一致的程度。支持以下取值:

    • AMSoftmax推荐参数margin 0.4 scale 30

    • ArcFaceLoss推荐参数margin 28.6 scale 64

    • CosFaceLoss推荐参数margin 0.35 scale 64

    • LargeMarginSoftmaxLoss推荐参数margin 4 scale 1

    • SphereFaceLoss推荐参数margin 4 scale 1

    • 基于模型并行的AMSoftmax可随着GPU数目扩展分类上线

    • 基于模型并行的Softmax可随着GPU数目扩展分类上限

    AMSoftmax推荐参数margin 0.4 scale 30

    度量学习损失函数参数scale

    根据度量学习使用的损失函数设置。

    30

    度量学习损失函数参数margin

    根据度量学习使用的损失函数设置。

    0.4

    度量学习损失函数权重

    损失函数的权重值,用来权衡度量和分类的优化比例。

    1.0

    优化方法

    训练模型使用的优化方法,支持以下取值:

    • SGD

    • AdamW

    SGD

    初始学习率

    初始学习率大小,浮点类型。

    0.03

    训练batch_size

    训练的批大小,即模型训练过程中,每次迭代(每一步)训练的样本数量。

    总的训练迭代epoch轮数

    所有样本训练完成一轮表示一个epoch。总的epoch轮数表示所有样本共训练多少轮。

    200

    保存checkpoint的频率

    保存模型文件的频率。取值为1表示1epoch训练完成后保存一次模型。

    10

    执行调优

    读取训练数据线程数

    读取训练数据的进程数量。

    4

    开启半精度

    选中该参数,表示使用半精度进行模型训练,用来降低内存占用。

    单击或分布式(MaxCompute/DLC)

    组件运行的引擎,您可以结合实际情况选择。系统支持以下计算引擎:

    • 单机DLC

    • 分布式DLC

    单机DLC

    worker个数

    当运行引擎为分布式DLC时,需要配置该参数。

    训练过程中,并发的进程(worker)数量。

    1

    gpu机型选择

    选择运行的GPU规格。

    8vCPU+60GB Mem+1xp100-ecs.gn5-c8g1.2xlarge

使用示例

您可以使用图像度量学习训练(raw)组件构建如下工作流。工作流本示例中,您需要按照以下流程配置组件:

  1. 准备数据,通过PAI提供的智能标注模块进行数据标注,详情请参见智能标注(ITAG)

  2. 使用OSS数据-4OSS数据-5组件分别训练数据标注结果文件和验证数据标注结果文件,即配置OSS数据组件的OSS数据路径参数为存放训练数据标注结果文件和验证数据标注结果文件的OSS路径。

  3. 将以上2OSS数据组件接入图像度量学习训练(raw)组件,并配置具体参数,详情请参见上文的可视化配置组件