视频分类训练

针对原始视频数据,您可以使用视频分类训练算法组件对其进行模型训练,从而获得用于推理的视频分类模型。本文介绍视频分类训练算法组件的配置方法及使用示例。

前提条件

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

使用限制

  • Designer提供该算法组件。

  • 仅支持DLC计算引擎。

算法简介

视频分类模块提供主流的3D卷积神经网络和Transformer模型用于视频分类任务的训练,目前已经支持的模型包括X3D系列的X3D-XS、X3D-MX3D-LTransformer模型的swin-t、swin-s、swin-b、swin-t-bert,其中swin-t-bert支持视频加文本的双模态输入。

视频分类训练算法组件位于组件库视觉算法文件夹下的离线训练模型子文件夹。

可视化配置组件

  • 输入桩

    输入桩(从左到右)

    限制数据类型

    建议上游组件

    是否必选

    训练数据

    OSS

    OSS数据

    否。如果没有通过该输入桩传入训练数据,则需要在字段设置页签中的训练数据文件oss路径参数配置训练数据,详情请参见下文的组件参数

    评估数据

    OSS

    OSS数据

    否。如果没有通过该输入桩传入评估数据,则需要在字段设置页签中的评估数据文件oss路径参数配置评估数据,详情请参见下文的组件参数

  • 组件参数

    页签

    参数

    是否必选

    描述

    默认值

    字段设置

    训练所用oss目录

    存储训练模型的OSS目录,例如oss://pai-online-shanghai.oss-cn-shanghai-internal.aliyuncs.com/test/test_video_cls

    数据目录

    存储视频文件的OSS目录,若不为空,则会和标签文件中的视频文件名共同拼接为完整的视频文件路径,例如数据目录为oss://pai-vision-data-hz/EasyMM/DataSet/kinetics400/,标签文件中的视频文件名为video/1.mp4,则最终的视频文件路径为oss://pai-vision-data-hz/EasyMM/DataSet/kinetics400/video/1.mp4

    训练数据文件oss路径

    如果没有通过输入桩配置算法组件的训练数据,则需要配置该参数,表示训练数据文件所在的OSS路径,例如oss://pai-vision-data-hz/EasyMM/DataSet/kinetics400/train_pai.txt

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

    若标签文件中不包含文本,标签文件每行的存储格式为视频文件名 标签,元素之间使用空格分隔,若标签文件中包含文本,每行的存储格式为视频文件名\t文本\t标签,元素之间使用\t分隔

    评估数据文件oss路径

    如果没有通过输入桩配置算法组件的评估数据,则需要配置该参数,表示评估数据文件所在的OSS路径,例如oss://pai-vision-data-hz/EasyMM/DataSet/kinetics400/train_pai.txt

    如果同时通过输入桩和该参数配置了算法组件的评估数据,则优先使用输入桩配置的输入。

    预训练模型oss路径

    建议使用预训练模型,以提高训练模型的精度。

    参数设置

    视频分类模型网络

    选择使用的识别模型网络,支持以下取值:

    • x3d_xs

    • x3d_l

    • x3d_m

    • swin_t

    • swin_s

    • swin_b

    • swin_t_bert

    x3d_xs

    是否多标签

    任务是否属于多标签。

    目前仅swin_t_bert支持多标签训练。

    false

    分类类别数目

    分类类别的数量。

    初始学习率

    初始学习率。

    x3d模型推荐使用学习率0.1,swin模型推荐使用学习率0.0001。

    0.1

    训练迭代轮数

    训练的迭代轮数。

    x3d模型推荐300,swin模型推荐30。

    10

    warmup迭代轮数

    开始设置较小的学习率进行训练,直到warmup迭代轮数才使学习率达到初始学习率,从而防止模型梯度爆炸。例如设置warmup迭代轮数35时,模型训练的学习率会逐渐增加,到第35 Epoch时增加到初始学习率

    35

    训练batch_size

    训练的批大小,即单次模型迭代或训练过程中使用的样本数量。

    32

    模型保存频率

    保存Checkpoint的频率,以Epoch为单位。取值为1表示每完成一次训练就保存一次Checkpoint。

    1

    执行调优

    开启半精度

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

    单机或分布式

    运行模式,支持以下取值:

    • single_dlc:单机DLC。

    • distribute_dlc:分布式DLC。

    single_dlc

    gpu机型选择

    选择运行的GPU规格。

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

  • 输出桩

    输出桩(从左到右)

    数据类型

    下游组件

    输出模型

    OSS路径。该路径是您在字段设置页签的训练所用oss目录参数配置的OSS路径,训练生成的.pth模型存储在该路径下。

    通用视频预测

示例

您可以使用视频分类训练算法组件构建如下工作流。视频分类示例本示例中,您需要按照以下流程配置组件:

  1. 使用两个OSS数据组件分别读取视频数据文件作为训练数据和评估数据,即配置OSS数据组件的OSS数据路径参数为视频数据文件的OSS路径。

    视频数据文件的格式如下图所示。标签文件该文件的每一行为一个视频存放路径和分类标签,二者之间使用空格分隔。

  2. 将训练数据和评估数据接入视频分类训练算法组件,并配置具体参数,详情请参见上文的可视化配置组件

相关文档

  • 关于Designer组件更详细的内容介绍,请参见Designer概述

  • Designer预置了多种算法组件,你可以根据不同的使用场景选择合适的组件进行数据处理,详情请参见组件参考:所有组件汇总