图像分类超参数 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

图像分类超参数

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

参数名称 描述
num_classes

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

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

必需

有效值:正整数

num_training_samples

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

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

必需

有效值:正整数

augmentation_type

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

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

  • crop_color:除了“裁剪”之外,范围 [-36, 36]、[-50, 50] 和 [-50, 50] 中的三个随机值将分别添加到相应的 Hue-Saturation-Lightness 通道

  • 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 表示不使用它。

可选

有效值:True 或者 False

默认值: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

adam 的 Epsilon。rmsprop 它通常设置为较小的值,以避免被 0 除。

可选

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

默认值:1e-8

gamma

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

可选

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

默认值:0.9

image_shape

输入图像尺寸,该尺寸与网络输入层的大小相同。其格式定义为“num_channels, 高度, 宽度”。图像尺寸可具有任意值,因为网络可处理各种尺寸的输入。但是,如果使用较大图像尺寸,可能会有内存限制。预训练模型只能使用固定的 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_sync 或者 dist_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] 中选择层数。每个数据集中的层数基于 ResNet 文章。对于迁移学习,层数定义了基础网络的架构,因此只能从数据集 [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)。对权重使用半精度会使内存消耗量减少。

可选

有效值:float32 或者 float16

默认值: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