图像分类超参数 - Amazon SageMaker

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

图像分类超参数

超参数是在机器学习模型开始学习之前设置的参数。Amazon SageMaker 内置的图片分类算法支持以下超参数。有关图像分类超参数优化的信息,请参阅优化图像分类模型

参数名称 描述
num_classes

输出分类的数量。此参数定义网络输出的维度,通常设置为数据集中的类别数。

除了多类别分类外,还支持多标签分类。有关如何使用增强清单文件处理多标签分类的详情,请参阅图像分类算法的输入/输出接口

必填

有效值:正整数

num_training_samples

输入数据集中的训练示例数。

如果此值与训练集中的示例数不匹配,则 lr_scheduler_step 参数的行为未定义,且分布式训练准确率可能会受影响。

必填

有效值:正整数

augmentation_type

数据扩增类型。输入图像可按照下面指定的多种方式扩增。

  • crop:随机裁剪图像并水平翻转图像

  • crop_color:除了“裁剪”之外,还向相应的色调、饱和度和亮度通道分别添加 [-36, 36]、[-50, 50] 和 [-50, 50] 范围内的三个随机值

  • crop_color_transform:除了 crop_color 之外,还对图像应用随机转换,包括旋转、剪切和宽高比变化。最大旋转角度为 10 度,最大剪切比为 0.1,而最大宽高变化比为 0.25。

可选

有效值:cropcrop_colorcrop_color_transform

默认值:无默认值

beta_1

adam 的 beta1,也就是一阶矩估计的指数衰减速率。

可选

有效值:浮点值。范围为 [0, 1]。

默认值:0.9

beta_2

adam 的 beta2,也就是二阶矩估计的指数衰减速率。

可选

有效值:浮点值。范围为 [0, 1]。

默认值:0.999

checkpoint_frequency

存储模型参数的周期 (纪元数)。

请注意,所有检查点文件都会作为最终模型文件“model.tar.gz”的一部分保存,并上传到 S3 中的指定模型位置。这将根据训练期间保存的检查点数按比例增加模型文件的大小。

可选

有效值:不大于 epochs 的正整数。

默认值:无默认值(在验证准确率最高的纪元保存检查点。)

early_stopping

True 表示在训练期间使用提前停止逻辑。False 表示不使用它。

可选

有效值:TrueFalse

默认值:False

early_stopping_min_epochs

可以调用提前停止逻辑之前必须运行的最小纪元数。仅当 early_stopping = True 时使用它。

可选

有效值:正整数

默认值:10

early_stopping_patience

如果在相关指标中没有改进,则在结束训练前等待的纪元数。仅当 early_stopping = True 时使用它。

可选

有效值:正整数

默认值:5

early_stopping_tolerance

用于评估准确率验证指标改善的相对容差。如果准确率改善除以上一个最佳准确率的比率小于设置的 early_stopping_tolerance 值,则提前停止逻辑会认为没有改善。仅当 early_stopping = True 时使用它。

可选

有效值:0 ≤ 浮点值 ≤ 1

默认值:0.0

epochs

训练纪元数。

可选

有效值:正整数

默认值:30

eps

adamrmsprop 的 epsilon 值。它通常设置为较小的值,以避免被 0 除。

可选

有效值:浮点值。范围为 [0, 1]。

默认值:1e-8

gamma

rmsprop 的 gamma 值,平方梯度的移动平均值的衰减系数。

可选

有效值:浮点值。范围为 [0, 1]。

默认值:0.9

image_shape

输入图像尺寸,该尺寸与网络输入层的大小相同。其格式定义为“num_channels, 高度, 宽度”。图像尺寸可具有任意值,因为网络可处理各种尺寸的输入。但是,如果使用较大图像尺寸,可能会有内存限制。预训练模型只能使用高度 x 宽度为 224 x 224 的固定图像大小。典型图像分类的典型图像尺寸为“3,224,224”。这与 ImageNet 数据集类似。

对于训练,如果任何输入图像的任何尺寸小于此参数,则训练将失败。如果图像较大,则会裁剪图像的一部分,并由此参数指定裁剪区域。如果设置了超参数 augmentation_type,则采用随机裁剪,否则将采取中央裁剪。

在推理时,输入图像的大小调整为 image_shape,这是在训练期间使用的大小。不保留纵横比,也不裁剪图像。

可选

有效值:字符串

默认值:“3,224,224”

kv_store

分布式训练期间的权重更新同步模式。可对各机器同步或异步更新权重更新。同步更新通常比异步更新提供更好的准确率,但速度较慢。有关更多详细信息,MXNet请参阅中的分布式训练。

此参数不适用于单个机器训练。

  • dist_sync:每次批处理后,梯度会与所有工作线程同步。对于 dist_sync,批次大小现在表示每台机器上使用的批次大小。因此,如果有 n 台机器,并且我们使用批次大小 b,则 dist_sync 行为类似于本地行为且批次大小为 n*b

  • dist_async:执行异步更新。每当从任何机器收到梯度时,权重就会更新,并且权重更新是原子更新。然而,该顺序并不能得到保证。

可选

有效值:dist_syncdist_async

默认值:无默认值

learning_rate

初始学习率。

可选

有效值:浮点值。范围为 [0, 1]。

默认值:0.1

lr_scheduler_factor

lr_scheduler_step 参数结合使用以降低学习率的比率,定义为 lr_new = lr_old * lr_scheduler_factor

可选

有效值:浮点值。范围为 [0, 1]。

默认值:0.1

lr_scheduler_step

降低学习率的纪元。正如 lr_scheduler_factor 参数中所述,学习率在这些纪元降低了 lr_scheduler_factor。例如,如果将值设置为“10, 20”,则学习率在第 10 纪元之后降低 lr_scheduler_factor,然后在第 20 纪元之后再次降低 lr_scheduler_factor。纪元之间用“,”分隔。

可选

有效值:字符串

默认值:无默认值

mini_batch_size

训练的批次大小。在单机多机GPU设置中,每台都GPU处理 mini_batch_size /num_gpu 训练样本。对于 dist_sync 模式下的多机器训练,实际批次大小为 mini_batch_size*机器数量。有关更多详细信息,请参阅MXNet文档。

可选

有效值:正整数

默认值:32

momentum

用于 sgdnag 的动量,其他优化程序忽略此值。

可选

有效值:浮点值。范围为 [0, 1]。

默认值:0.9

multi_label

用于多标签分类的标志,其中每个示例可以分配多个标签。记录所有分类的平均准确率。

可选

有效值:0 或 1

默认值:0

num_layers

网络的层数。对于图像大小较大的数据(例如,224x224-类似 ImageNet),我们建议从集合中选择图层数 [18、34、50、101、152、200]。对于图像大小较小的数据(例如,28x28-类似CIFAR),我们建议从集合中选择图层数 [20、32、44、56、110]。每组中的图层数以 p ResNet aper 为基础。对于迁移学习,层数定义了基础网络的架构,因此只能从数据集 [18, 34, 50, 101, 152, 200] 中选择。

可选

有效值:[18, 34, 50, 101, 152, 200] 或 [20, 32, 44, 56, 110] 中的正整数

默认值:152

optimizer

优化程序类型。有关优化器参数的更多详细信息,请参阅MXNet。API

可选

有效值:sgdadamrmspropnag 之一。

默认值:sgd

precision_dtype

用于训练的权重精度。该算法可以对权重使用单精度 (float32) 或半精度 (float16)。对权重使用半精度会使内存消耗量减少。

可选

有效值:float32float16

默认值:float32

resize

调整图像大小以进行训练后,图像最短边的像素数。如果未设置此参数,则使用训练数据时不调整大小。参数应该大于 image_shape 的宽度和高度分量,以防止训练失败。

使用图像内容类型时为必需

使用 RecordIO 内容类型时为可选

有效值:正整数

默认值:无默认值

top_k

训练期间报告前 k 个最大数准确率。此参数必须大于 1,因为 top-1 训练准确率与已报告的常规训练准确率相同。

可选

有效值:大于 1 的正整数。

默认值:无默认值

use_pretrained_model

指示使用预先训练的模型进行训练的标志。如果设置为 1,则加载具有相应层数的预先训练的模型并将其用于训练。只有顶部 FC 层使用随机权重进行重新初始化。否则,从头训练网络。

可选

有效值:0 或 1

默认值:0

use_weighted_loss

用于多标签分类的加权交叉熵损失的标志(仅在 multi_label = 1 时使用),其中权重是基于分类的分布计算的。

可选

有效值:0 或 1

默认值:0

weight_decay

用于 sgdnag 的权重衰减系数,其他优化程序忽略此值。

可选

有效值:浮点值。范围为 [0, 1]。

默认值:0.0001