文档首页 > > AI工程师用户指南> 训练管理> 预置算法> 算法介绍及其运行参数说明

算法介绍及其运行参数说明

分享
更新时间: 2020/06/18 GMT+08:00

本章节介绍了ModelArts当前支持的预置算法的说明及每个算法支持的运行参数。您可以参考本章节说明,设置训练作业中的运行参数。

yolo_v3

表1 算法介绍

参数

说明

名称

yolo_v3

用途

检测物体类别和位置

引擎类型

MXNet, MXNet-1.2.1-python2.7

精度

81.7%(mAP)

mAP是物体检测算法中衡量算法效果的指标。对于物体检测任务,每一类object都可以计算出其精确率(Precision)和召回率(Recall),在不同阈值下多次计算/试验,每个类都可以得到一条P-R曲线,曲线下的面积就是average。

训练数据集

Pascal VOC2007,20类物体检测

数据格式

shape: [H>=224, W>=224, C>=1]; type: int8

运行参数

lr=0.0001 ; mom=0.9 ; wd=0.0005

更多可使用的运行参数,请参见表2

表2 运行参数说明

可选参数

参数说明

默认值

lr

更新参数的学习率。

0.0001

mom

训练网络的动量参数。

0.9

wd

参数权重衰减系数,L2。

0.0005

num_classes

训练中使用的图片总的类别数,若再增加其他类别的图片,该参数会自动识别进行匹配,无需手动修改参数值。

split_spec

训练集和验证集切分比例。

0.8

batch_size

每次更新训练的图片数量(所有GPU总和)。

4

eval_frequence

对模型做验证的频率,默认为每个epoch都做。

1

num_epoch

训练的epoch数。

10

num_examples

参与训练的图片总数,比如图片总数是1000,由于切分数据集这里是800。

16551

disp_batches

每N个batch显示一次计算模型的loss和训练速度。

20

warm_up_epochs

warm_up策略达到指定lr的epoch数。

0

lr_steps

multifactor策略中lr衰减的epoch数,默认为在第10和15个epoch衰减为原来的0.1倍。

10,15

yolov3_resnet18

此算法当前支持Ascend 310的推理,暂不支持CPU、GPU推理。如果需要使用CPU或GPU推理,建议使用yolo_v3算法,使用MXNet引擎开发的算法。两个算法的用途一样,“yolo_v3”算法适用于CPU或GPU推理,“yolov3_resnet18”算法适用于Ascend 310推理。

表3 算法介绍

参数

说明

名称

yolov3_resnet18

用途

检测物体类别和位置

引擎类型

TensorFlow,TF-1.13.1-python3.6

精度

-

训练数据集

COCO

数据格式

shape: [H>=224, W>=224, C>=1]; type: int8

运行参数

input_shape=352,640 ; batch_size=32 ; max_epochs=100 ; ...

更多可使用的运行参数,请参见表4

表4 运行参数说明

可选参数

参数说明

默认值

input_shape

算法在训练之前,将输入图片长和宽统一调整之后的尺寸,输入格式为“height,width”,逗号之间不能加空格。

352,640

max_epochs

模型运行的最大迭代数,此参数必须设置为整数。

32

batch_size

每次迭代训练的图片数量(单卡),此参数必须设置为整数。

100

learning_rate

模型运行时候的学习率,取值范围为0~1。

0.001

obj_threshold

置信度阈值,取值范围为0~1。推理的时候,如果预测框的置信度小于该值,那么就会过滤掉。

0.3

nms_threshold

NMS阈值,取值范围为0~1。

0.4

class_names

“数据来源”选择“数据集”时,不需要设置此参数。如果选择“数据存储路径”,则必须添加此参数,需手工添加。

数据集的标签名字,多个标签之间使用英文逗号隔开,且中间不能加空格。例如,“person,face”

-

retinanet_resnet_v1_50

表5 算法介绍

参数

说明

名称

retinanet_resnet_v1_50

用途

检测物体类别和位置

引擎类型

TensorFlow, TF-1.8.0-python2.7

精度

83.15%(mAP)

mAP是物体检测算法中衡量算法效果的指标。对于物体检测任务,每一类object都可以计算出其精确率(Precision)和召回率(Recall),在不同阈值下多次计算/试验,每个类都可以得到一条P-R曲线,曲线下的面积就是average。

训练数据集

ImageNet-1k; [H, W, C=3]

数据格式

shape: [H, W, C>=1]; type: int8

运行参数

默认算法未设置运行参数,更多可使用的运行参数,请参见表6

表6 运行参数说明

可选参数

参数说明

默认值

split_spec

训练集和验证集切分比例。

train:0.8,eval:0.2

num_gpus

使用的GPU个数。

1

batch_size

每次迭代训练的图片数量(单卡)。为了保证算法精度,建议暂时使用默认值,不进行配置。

固定为1

learning_rate_strategy

训练的学习率策略,取值范围0~1,例如可设置为0.001。

0.002

evaluate_every_n_epochs

每训练N个epoch做一次验证。

1

save_interval_secs

保存模型的频率(单位:s)。

如果模型运行时间大于2000000s,那么默认2000000s保存一次,如果模型运行时间小于2000000s,模型运行结束时保存。

2000000

max_epoches

最大训练的epoch数。

100

log_every_n_steps

每训练N步打印一次日志,默认为10步打印一次。

10

save_summaries_steps

每5步保存一次summary信息,包括模型梯度更新值,以及训练参数。

5

weight_decay

模型权重衰减的L2系数。

0.00004

optimizer

优化器。可选值为:

  • dymomentumw
  • sgd
  • adam
  • momentum

momentum

momentum

优化器参数momentum。

0.9

patience

N个epoch之后,如果精度(物体检测中是mAP,图像分类中是accuracy)相较之前的最大值没有提升,即与最大精度的差值小于decay_min_delta设置的参数,学习率会衰减为原来的十分之一,N默认值为8。

8

decay_patience

在上述patience基础上,如果再经过M个epoch训练,如果精度值(物体检测中是mAP,图像分类中是accuracy)还是没有提升,即与最大精度的差值小于decay_min_delta设置的参数,那么就会提前终止训练。M默认值为1。

1

decay_min_delta

不同学习率对应的精度(物体检测中是mAP,图像分类中是accuracy)之间的最小差值,大于0.001,代表精度有提升,反之,表示精度无提升。

0.001

rcnn_iou_threshold

ssd和faster rcnn计算map时候使用的IOU阈值。

0.5

inception_v3

表7 算法介绍

参数

说明

名称

inception_v3

用途

图像分类

引擎类型

TensorFlow, TF-1.8.0-python2.7

精度

78.00%(top1), 93.90%(top5)

  • top1是指对于一个图片,如果概率最大的是正确答案,才认为正确。
  • top5是指对于一个图片,如果概率前五中包含正确答案,即认为正确。

训练数据集

imagenet,1000类图像分类

数据格式

shape: [H, W, C>=1]; type: int8

运行参数

batch_size=32 ; split_spec=train:0.8,eval:0.2 ;

更多可使用的运行参数请参见表8

表8 运行参数说明

可选参数

参数说明

默认值

split_spec

训练集和验证集切分比例。

train:0.8,eval:0.2

num_gpus

使用的GPU个数。

1

batch_size

每次迭代训练的图片数量(单卡)。为了保证算法精度,建议暂时使用默认值,不进行配置。

32

eval_batch_size

验证时每步读取的图片数量(单卡)。

32

learning_rate_strategy

训练的学习率策略(“10:0.001,20:0.0001”代表0-10个epoch学习率0.001, 10-20epoch学习率0.0001)。

0.002

evaluate_every_n_epochs

每训练N个epoch做一次验证。

1

save_interval_secs

保存模型的频率(单位:s)。

如果模型运行时间大于2000000s,那么默认2000000s保存一次,如果模型运行时间小于2000000s,模型运行结束时保存。

2000000

max_epoches

最大训练的epoch数。

100

log_every_n_steps

每训练N步打印一次日志,默认为10步打印一次。

10

save_summaries_steps

每5步保存一次summary信息,包括模型梯度更新值,以及训练参数。

5

weight_decay

模型权重衰减的L2系数。

0.00004

optimizer

优化器。可选值:

  • dymomentumw
  • sgd
  • adam
  • momentum

momentum

momentum

优化器参数momentum。

0.9

patience

N个epoch之后,如果精度(物体检测中是mAP,图像分类中是accuracy)相较之前的最大值没有提升,即与最大精度的差值小于decay_min_delta设置的参数,学习率会衰减为原来的十分之一,N默认值为8。

8

decay_patience

在上述patience基础上,如果再经过M个epoch训练,如果精度值(物体检测中是mAP,图像分类中是accuracy)还是没有提升,即与最大精度的差值小于decay_min_delta设置的参数,那么就会提前终止训练。M默认值为1。

1

decay_min_delta

不同学习率对应的精度(目标检测中是mAP,图片分类中是accuracy)之间的最小差值,大于0.001,代表精度有提升,反之,表示精度无提升。

0.001

image_size

训练传入模型的图片大小,为None时获取模型的默认图片大小。

None

lr_warmup_strategy

warmup策略(线性或指数)。

linear

num_readers

数据读取的线程数。

64

fp16

是否使用fp16精度训练。

FALSE

max_lr

最大学习率(dymomentum, dymomentumw优化器以及使用use_lr_schedule时调节的学习率最大值)。

6.4

min_lr

最小学习率(dymomentum, dymomentumw优化器以及使用use_lr_schedule时调节的学习率最小值)。

0.005

warmup

warmup在总训练步数中的占比(use_lr_schedule为lcd、poly时使用)。

0.1

cooldown

在warmup中学习率能下降到的最小值。

0.05

max_mom

最大momentum(动态momentum使用)。

0.98

min_mom

最小momentum(动态momentum使用)。

0.85

use_lars

是否使用Lars。

FALSE

use_nesterov

是否使用Nesterov Momentum。

TRUE

preprocess_threads

图片预处理的线程数。

12

use_lr_schedule

学习率调整策略('lcd':linear_cosine_decay, 'poly':polynomial_decay)。

None

darknet_53

表9 算法介绍

参数

说明

名称

darknet_53

用途

图像分类

引擎类型

MXNet, MXNet-1.2.1-python2.7

精度

78.56%(top1), 94.43%(top5)

  • top1是指对于一个图片,如果概率最大的是正确答案,才认为正确。
  • top5是指对于一个图片,如果概率前五中包含正确答案,即认为正确。

训练数据集

imagenet,1000类图像分类

数据格式

shape: [H>=224, W>=224, C>=1]; type: int8

运行参数

split_spec=0.8 ; batch_size=4 ;

更多可使用的运行参数,请参见表10

表10 运行参数说明

可选参数

参数说明

默认值

num_classes

训练中使用的图片总的类别数。

num_epoch

训练的epoch数。

10

batch_size

每次更新参数输入的数据数量(总)。

4

lr

更新参数的学习率。

0.0001

image_shape

输入模型图片的shape。

3,224,224

split_spec

训练集和验证集切分比例。

0.8

save_frequency

保存模型的频率,即隔N个epoch保存一次模型。

1

SegNet_VGG_BN_16

表11 算法介绍

参数

说明

名称

SegNet_VGG_BN_16

用途

图像语义分割

引擎类型

MXNet, MXNet-1.2.1-python2.7

精度

89%(pixel acc)

pixel acc是指标记正确的像素占总像素的比例。

训练数据集

Camvid

数据格式

shape: [H=360, W=480, C==3]; type: int8

运行参数

deploy_on_terminal=False; deploy_on_terminal=False

更多可使用的运行参数,请参见表12

表12 运行参数说明

可选参数

参数说明

默认值

lr

更新参数的学习率。

0.0001

mom

训练网络的动量参数。

0.9

wd

权重衰减系数。

0.0005

num_classes

训练中使用的图片总的类别数,这里不需要+1。

11

batch_size

每次更新训练的图片数量(所有GPU总和)。

8

num_epoch

训练的epoch数。

15

save_frequency

保存模型的频率,即隔N个epoch保存一次模型。

1

num_examples

参与训练的图片总数train.txt中的文件数。

2953

data_shape

输入模型图片的shape。

3,256,256

optimizer

优化器,默认为随机梯度下降,可选nag。

sgd

lr_steps

multifactor策略中lr衰减的epoch数,默认为在第10和15个epoch衰减为原来的0.1倍。

7,12

ResNet_v2_50

表13 算法介绍

参数

说明

名称

ResNet_v2_50

用途

图像分类

引擎类型

MXNet, MXNet-1.2.1-python2.7

精度

75.55%(top1), 92.6%(top5)

  • top1是指对于一个图片,如果概率最大的是正确答案,才认为正确。
  • top5是指对于一个图片,如果概率前五中包含正确答案,即认为正确。

训练数据集

imagenet,1000类图像分类

数据格式

shape: [H>=32, W>=32, C>=1]; type: int8

运行参数

split_spec=0.8 ; batch_size=4 ;

更多可使用的运行参数与“darknet_53”算法一致,详情请参见表10

ResNet_v1_50

表14 算法介绍

参数

说明

名称

ResNet_v1_50

用途

图像分类

引擎类型

TensorFlow, TF-1.8.0-python2.7

精度

74.2%(top1), 91.7%(top5)

  • top1是指对于一个图片,如果概率最大的是正确答案,才认为正确。
  • top5是指对于一个图片,如果概率前五中包含正确答案,即认为正确。

训练数据集

imagenet,1000类图像分类

数据格式

shape: [H>=600,W<=1024,C>=1];type:int8

运行参数

batch_size=32 ; split_spec=train:0.8,eval:0.2 ;

更多可使用的运行参数与“inception_v3”算法一致,详情请参见表8

Faster_RCNN_ResNet_v2_101

表15 算法介绍

参数

说明

名称

Faster_RCNN_ResNet_v2_101

用途

检测物体类别和位置

引擎类型

MXNet, MXNet-1.2.1-python2.7

精度

80.05%(mAP)

mAP是物体检测算法中衡量算法效果的指标。对于物体检测任务,每一类object都可以计算出其精确率(Precision)和召回率(Recall),在不同阈值下多次计算/试验,每个类都可以得到一条P-R曲线,曲线下的面积就是average。

训练数据集

Pascal VOC2007,20类物体检测

数据格式

shape: [H, W, C==3]; type: int8

运行参数

lr=0.0001 ; eval_frequence=1 ;

更多可使用的运行参数,请参见表16

表16 运行参数说明

可选参数

参数说明

默认值

num_classes

训练中使用的图片总的类别数,这里需要+1,因为有一个额外的背景类。

eval_frequence

对模型做验证的频率,默认为每个epoch都做。

1

lr

更新参数的学习率。

0.0001

mom

训练网络的动量参数。

0.9

wd

参数权重衰减系数,L2。

0.0005

export_model

是否将生成的模型生成为部署推理服务需要的格式。

TRUE

split_spec

训练集和验证集切分比例。

0.8

optimizer

优化器,默认为随机梯度下降,可选nag。

sgd

Faster_RCNN_ResNet_v1_50

表17 算法介绍

参数

说明

名称

Faster_RCNN_ResNet_v1_50

用途

检测物体类别和位置

引擎类型

TensorFlow, TF-1.8.0-python2.7

精度

73.6%(mAP)

mAP是物体检测算法中衡量算法效果的指标。对于物体检测任务,每一类object都可以计算出其精确率(Precision)和召回率(Recall),在不同阈值下多次计算/试验,每个类都可以得到一条P-R曲线,曲线下的面积就是average。

训练数据集

Pascal VOC2007,20类物体检测

数据格式

shape: [H>=600,W<=1024,C>=1];type:int8

运行参数

batch_size=32 ; split_spec=train:0.8,eval:0.2 ;

更多可使用的运行参数与“retinanet_resnet_v1_50”算法一致,详情请参见表6

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问