所有文档

          EasyDL定制AI训练平台

          专业版配置视觉任务

          目录

          1. 配置训练集及评测集
          2. 视觉任务预训练模型
          3. 配置脚本注意事项

          配置训练集及评测集

          配置训练集

          在添加任务备注后,在添加数据的位置选择添加训练集。

          可选的数据集要求如下:

          1. 数据集标注类型与项目类型一致,如同为图像分类-单图单标签/物体检测-矩形框标注等
          2. 数据集数据量不为0;
          3. 数据集状态非智能标注中,非导入中

          数据集状态支持导入多个数据集的多个标签,如果选择标签名称一致,则相应数据内容会被合并。 当一个项目新建了多个任务类型进行迭代训练时,训练数据会默认为最近一次训练版本所选的数据,如果标签不变仅每个标签下的标注数据发生变化,或者配置脚本内容发生变化,则数据的部分可以不做任何操作。

          image.png

          配置数据增强策略

          在配置完训练集之后,紧接着就可以配置数据增强策略。

          深度学习模型的成功很大程度上要归功于大量的标注数据集。通常来说,通过增加数据的数量和多样性往往能提升模型的效果。当在实践中无法收集到数目庞大的高质量数据时,可以通过配置数据增强策略,对数据本身进行一定程度的扰动从而产生"新"数据。模型会通过学习大量的"新"数据,提高泛化能力。

          你可以在「默认配置」、「手动配置」、「自动搜索」三个选项进行选择,参考详细的技术文档,完成数据增强策略的配置。

          image.png

          配置评测集

          评测集为非必选项,如果额外上传一批非在训练集的数据作为评测集,可在模型训练完毕后单独获得额外评测集的测试效果。其中评测集的标签需要与训练集所选标签完全一致,否则将无法启动训练任务。

          视觉任务预训练模型

          图像分类模型

          图像分类网络包含了基于飞桨深度学习平台模型库的十四种预训练网络,利用海量数据进行预训练,并且在ImageNet-2012数据集上进行了top-1准确率和cpu测试时间的测试。详细测试数据

          预训练模型 预训练网络 top-1准确率 cpu测试时间(ms) 模型特点
          公开数据集通用分类预训练模型 EffcientNetB0_small 0.751 129 去掉SE模块的EffcientNetB0,精度略有下降,速度大幅上升
          EfficientNetB4 0.8285 415 基于EffcientNetB0增加了网络的复杂度,预测准确率和时间也相应提高
          MobileNetV2 0.7215 -- 轻量级网络,预测时间很短,但是精度也相应降低
          MobileNetV3_large_x1_0 0.753 96 MobileNet的最新版,同样为轻量化网络,但性能得到了进一步提升
          NASNet 0.827 -- 如果数据量不大,由于模型复杂度较大,一般情况不建议使用
          ResNet18_vd 0.7226 142 轻量级ResNet,适用于要求小体积模型的情况,预测时间短,但准确率也相应较低
          ResNet50 0.765 -- 模型效果稳定,并且预测时间较短,适用于大多数情况
          ResNet101 0.7756 -- 在处理较大数据量时有更高的准确率,预测时间相比ResNet50也会更长
          ResNeXt101_32x16d_wsl 0.8424 1838 基于超大量图片的弱监督预训练模型,准确率高但是预测时间较长
          Res2Net101_vd_26w_4s 0.8064 575 在单个残差块内进一步构造了分层的残差类连接,比ResNet101准确度更高
          SE_ResNet18_vd 0.7333 152 比ResNet18_vd增加了SE模块,提高了准确率,但是预测时间也稍有增加
          SE-ResNeXt50 0.7844 -- 与ResNet50相仿,准确率和预测时间稍有增加,但同样适用于大多数情况
          SE-ResNeXt101 0.7912 -- 比ResNet101准确度更高,同时预测时间也更长
          Xception71 0.8111 747 采用了深度可分离卷积,使模型预测的准确率得到了很大的提升
          百度超大规模数据集通用分类预训练模型 MobileNetV3_large_x1_0 - - 使用百度自有大规模数据集的预训练网络,对比公开数据集的预训练模型具有更高的精度
          ResNet50_vd - - 使用百度自有大规模数据集的预训练网络,对比公开数据集的预训练模型具有更高的精度
          ResNet101_vd - - 使用百度自有大规模数据集的预训练网络,对比公开数据集的预训练模型具有更高的精度

          物体检测模型

          物体检测网络包含了基于飞桨深度学习平台模型库的七种预训练网络。使用COCO17数据集进行box AP和cpu测试时间的测试。详细测试数据

          预训练模型 预训练网络 box AP cpu测试时间(ms) 模型特点
          公开数据集通用分类预训练模型 SSD-MobileNetV1 25.1 54 轻量级网络,重视预测速度时优先使用
          YOLOv3-MobileNetV1 23.9 171 轻量高速,重视预测速度时优先使用
          YOLOv3-DarkNet 38.9 514 模型在预测速度和模型精度上都有居中表现,适用于一般情况
          YOLOv3-ResNet50vd-DCN 41.4 456 以ResNet50_vd作为backbone的YOLOv3模型,预测精度高
          Faster_R-CNN-ResNet50-FPN 37.7 2842 预测精度高,训练时间长,适用于重视模型精度的使用情况
          RetinaNet-ResNet50-FPN 36 2308 经典的两阶段检测器,预测精度高,训练时间长,适用于重视模型精度的使用情况
          Cascade_RCNN-RestNet50-FPN 40.9 4454 经典的两阶段检测器,预测精度高,训练时间长,适用于重视模型精度的使用情况
          百度超大规模数据集通用分类预训练模型 YOLOv3-DarkNet - - 使用百度自有大规模数据集的预训练网络,对比公开数据集的预训练模型具有更高的精度
          Faster_R-CNN-ResNet50-FPN - - 使用百度自有大规模数据集的预训练网络,对比公开数据集的预训练模型具有更高的精度

          实例分割模型

          实例分割网络包含了基于飞桨深度学习平台模型库的两种预训练网络。

          预训练模型 预训练网络 模型特点
          公开数据集通用分类预训练模型 Mask_RCNN-ResNet50-VD-FPN 预测精度较高,训练收敛快,适用于重视模型效果和速度均衡的使用情况
          Cascade_Mask_RCNN-RestNet50-FPN 预测精度高,适用于重视模型精度的使用情况

          图像分类任务网络选型建议

          • 大多数情况建议使用 ResNet50和SE-ResNeXt50,模型效果稳定,并且预测时间较短。SE-ResNeXt50相比ResNet50增加了SE模块,能进一步提高准确率,但是预测时间稍有增加
          • 当数据量较大并且要求更高的准确率时,建议从 ResNet101,ResNeXt101_32x16d_wsl,Xception71,Res2Net101_vd_26w_4s,SE-ResNeXt101,EffcientNetB4 中选择模型,预测时间相比ResNet50会更长
          • 如果要求预测时间或模型体积尽量小时,建议使用 MobileNetV2,MobileNetV3_large_xi_0,ResNet18_vd,EffcientNetB0_small,SE_ResNet18_vd,
          • 如果数据量不大,由于模型复杂度较大,一般情况不建议使用NASNet

          物体检测任务网络选型建议

          • 如果重视预测速度,优先使用 SSD-MobileNetV1,YOLOv3-MobileNetV1
          • 如果重视模型精度,优先使用 YOLOv3-ResNet50vd_DCN,Faster_R-CNN-ResNet50-FPN,RetinaNet-ResNet50-FPN,Cascade Faster-ResNet50-FPN
          • 如果在预测速度和模型精度上折中,可以使用 YOLOv3-DarkNet

          实例分割任务网络选型建议

          • 大多数情况建议使用 Mask_RCNN-ResNet50-VD-FPN,模型效果稳定,预测时间适中
          • 当重视模型精度时,优先使用 Cascade_Mask_RCNN-RestNet50-FPN

          配置超参数

          超参来源

          目前EasyDL支持三种方法配置任务中网络的超参数,你可以沿用「脚本编辑」中设定的超参数,为获取更高的模型精度,也可以选择「自动超参搜索」对网络的超参数进行搜索。选择「已有超参搜索结果」时,可以在预训练模型和预训练网络相同的任务中,复用自动超参搜索结果,高效地训练出高精度模型。

          自动超参搜索

          自动超参搜索利用超参搜索策略,消耗相对较长的时间对网络模型进行自动调参。目前EasyDL共支持三种超参搜索策略,详细配置方式请参考技术文档

          超参搜索策略

          策略名称 说明
          随机搜索 在参数变量的变化区间中随机采样参数组合成候选集,应用候选集进行训练和效果对比
          贝叶斯搜索 贝叶斯搜索在搜索空间中随机选取初始超参数点,然后根据已有超参对应的指标结果拟合概
          率模型,通过概率模型推测最佳超参点,然后再试验得到这些超参点的结果。如此反复优化,
          再有限试验次数中搜索出合适的超参数。
          进化算法 进化算法是基于种群概念的超参搜索策略,把超参配置视为一个种群,并行优化多个种群
          并在种群内部进行优胜劣汰的筛选,最终输出最佳模型

          如何选择超参搜索策略:

          随机搜索:普适的效率较高的搜索方法,通常作为基线标准。适用于对效率要求较高的情况
          贝叶斯搜索:利用已有参数信息推测最优点,是一种效率较高的黑盒优化算法。效果优于随机搜索,适用于一般情况。
          进化算法:效果较好的算法,适合直接在自动超参搜索中过程中输出最佳模型,它的搜索结果应用到新的训练时可能导致效果下降

          选择训练资源并设置最长运行时间

          运行环境说明

          目前EasyDL支持选择GPU P4、GPU P40、GPU V100三种运行环境,性能从高到低为V100>P40>P4。具体规格说明如下:

          机型 规格说明
          GPU V100 TeslaGPU_V100_16G显存单卡_12核CPU_56G内存
          GPU P40 TeslaGPU_P40_24G显存单卡_12核CPU_40G内存
          GPU P4 TeslaGPU_P4_8G显存单卡_12核CPU_40G内存

          温馨提示:

          • 未开通付费的情况下,可选的运行环境为GPU P4,我们为每位用户提供了GPU P4运行环境下100(小时*节点)免费算力支持,超出后请您付费购买。详见页面提示的价格说明。
          • 图像分类NASNet网络暂时不支持在 GPU P4环境上运行,若您未开通付费,请选择其他网络。

          如何设置节点数及运行时间

          1、选择计算节点数:节点数越多运行效率越高,可结合训练数据量及运行效率灵活选择。目前可设置的最高计算节点数为6.

          2、最长训练时间:超过最长训练时间后模型会自动停止运行,注意这里设置的最长训练时间与最长计费时长有一定差异,训练计费时长将根据数据增强-自动搜索耗时+训练耗时的总时长进行计算。

          注意:实际训练时长与所选机型、节点数、网络、数据量均有关系,其中性能上V100>P40>P4,在同一网络前提下,训练机型新能越高、节点数越多、数据量越少训练速度会越快。

          根据历史经验,不同数据量范围、网络的大致耗时范围如下,供辅助参考

          图像分类

          网络及设置 数据量范围 训练耗时预估
          ResNet50(batch size=16) 1-1.5w 2节点预估12-14min左右;4节点11min左右
          4-6k 5min左右,10min以内,多节点或单节点不太影响训练时长
          1k 以下 2-3min左右,多节点或单节点不太影响训练时长

          物体检测

          网络及设置 数据量范围 训练耗时预估
          Faster_R-CNN-ResNet50-FPN 200-400之间 2节点预估十几-二十分钟左右;4节点预估在十分钟以内
          1800-2000 2节点预估在60min左右,4节点预估在40min左右

          以下为典型网络在不同数据量、不同机型、不同节点数的实际测试训练耗时,供辅助参考。

          图像分类

          网络及数据量 机型 节点数 训练耗时
          ResNet50(数据量6000+) V100 1 400s
          V100 2 326s
          V100 6 198s
          P40 1 867s
          P40 2 562s
          P40 6 540s
          P4 1 1385s
          P4 2 751s
          P4 6 302s
          MobileNet(数据量6000+) V100 1 259s
          V100 2 197s
          V100 6 161s
          P40 1 396s
          P40 2 285s
          P40 6 333s
          P4 1 630s
          P4 2 370s
          P4 6 178s

          物体检测

          网络及数据量 机型 节点数 训练耗时
          Faster_R-CNN-ResNet50-FPN(数据量400+)20epoch V100 1 29.1min
          V100 2 16.1min
          V100 6 6min
          P40 1 40min
          P40 2 21.8min
          P40 6 11.8min
          P4 1 66min
          P4 2 34.4min
          P4 6 13.28min
          SSD-MobileNetV1(数据量400+)20epoch V100 1 19min
          V100 2 10.3min
          V100 6 3.9min
          P40 1 28.1min
          P40 2 14.6min
          P40 6 4.8min
          P4 1 25.4min
          P4 2 13.4min
          P4 6 5.1min

          配置脚本注意事项

          说明:EasyDL专业版目前支持飞桨(Paddle Paddle)深度学习框架 了解飞桨

          目前EasyDL专业版为每一种预训练模型都预置了脚本代码,在不需要修改的情况下可直接启动训练。
          自定义脚本内容过程中有如下注意事项:

          1. 可以自定义的部分包括超参配置字典conf和模型头部网络定义函数create_model。主体网络(含预训练参数)在页面可选。
          2. 超参配置conf包括可调的超参,比如训练轮数epoch,其类型和范围见注释。不要随意设置否则可能会训练失败,比如batch size太大,可能导致显存不够而失败。
          3. 超参配置conf不需要设置类别数,这是通过数据集推断出来的。
          4. 函数create_model完成头部网络定义,输出要求是一个字典,其中包括'loss'和'infer_out'两个key,'loss'是网络损失,'infer_out'是预测输出。如果修改有误可能会导致训练失败。
          5. 在分类任务中,请保证infer_out的Tensor形状是BatchSize x ClassNumber
          6. 在检测任务中,请保证infer_out的LodTensor形状是 BoxNumber x 6,其中每行是(label, confidence, xmin, ymin, xmax, ymax)
          7. conf中如果有可供配置的模型结构参数,请阅读相关注释或链接后再行修改,随意设置可能会导致训练失败或训练精度异常。
          上一篇
          创建视觉任务
          下一篇
          训练高级配置