Keras 3 API 文档 / KerasTuner / 超模型 / HyperImageAugment

HyperImageAugment

[源代码]

HyperImageAugment

keras_tuner.applications.HyperImageAugment(
    input_shape=None,
    input_tensor=None,
    rotate=0.5,
    translate_x=0.4,
    translate_y=0.4,
    contrast=0.3,
    augment_layers=3,
    **kwargs
)

图像增强超模型。

HyperImageAugment 类搜索 Keras 预处理层中图像增强操作的最佳组合。模型的输入形状应为 (高度,宽度,通道)。模型的输出与输入形状相同。

参数

  • input_shape: 可选的形状元组,例如 (256, 256, 3)
  • input_tensor: 可选的 Keras 张量(即 layers.Input() 的输出),用作模型的图像输入。
  • rotate: [0, 1] 之间的数字、[0, 1] 之间的两个数字的列表或 None。配置增强中随机旋转变换因子的搜索空间。每个试验都会选择一个因子。它设置所有样本中顺时针和逆时针旋转的最大值(以 pi 的分数表示)。默认值为 0.5。当 rotate 是单个数字时,搜索范围为 [0, rotate]。设置为 None 时,变换关闭。
  • translate_x: [0, 1] 之间的数字、[0, 1] 之间的两个数字的列表或 None。配置增强中随机水平平移变换因子的搜索空间。每个试验都会选择一个因子。它设置所有样本中水平平移的最大值(以宽度比例表示)。默认值为 0.4。当 translate_x 是单个数字时,搜索范围为 [0, translate_x]。设置为 None 时,变换关闭。
  • translate_y: [0, 1] 之间的数字、[0, 1] 之间的两个数字的列表或 None。配置增强中随机垂直平移变换因子的搜索空间。每个试验都会选择一个因子。它设置所有样本中垂直平移的最大值(以高度比例表示)。默认值为 0.4。当 translate_y 是单个数字时,搜索范围为 [0, translate_y]。设置为 None 时,变换关闭。
  • contrast: [0, 1] 之间的数字、[0, 1] 之间的两个数字的列表或 None。配置增强中随机对比度变换因子的搜索空间。每个试验都会选择一个因子。它设置所有样本中对比度变化的最大比率。默认值为 0.3。当 contrast 是单个数字时,搜索范围为 [0, contrast]。设置为 None 时,变换关闭。
  • augment_layers: None、int 或两个 int 的列表,控制应用的增强数量。默认值为 3。当 augment_layers 为 0 时,所有变换都按顺序应用。当 augment_layers 不为零或为两个 int 的列表时,将使用 RandAugment 的简化版本(https://arxiv.org/abs/1909.13719)。将创建“augment_layers”的搜索空间以搜索 [0, augment_layers],或者如果 augment_layers 是列表,则搜索两个 int 之间。对于每个试验,“augment_layers”超参数确定应用的增强变换层数,每个变换层都从所有可用的变换类型中随机选择,每个样本的概率相等。
  • **kwargs: 应用于所有超模型的其他关键字参数。请参阅 keras_tuner.HyperModel

示例

hm_aug = HyperImageAugment(input_shape=(32, 32, 3),
                           augment_layers=0,
                           rotate=[0.2, 0.3],
                           translate_x=0.1,
                           translate_y=None,
                           contrast=None)

然后,超模型 hm_aug 将在 [0.2, 0.3] 之间搜索“factor_rotate”,在 [0, 0.1] 之间搜索“factor_translate_x”。这两个增强将应用于所有样本,每个试验都会选择一个因子。

hm_aug = HyperImageAugment(input_shape=(32, 32, 3),
                           translate_x=0.5,
                           translate_y=[0.2, 0.4]
                           contrast=None)

然后,超模型 hm_aug 将在 [0, 0.2] 之间搜索“factor_rotate”,在 [0, 0.5] 之间搜索“factor_translate_x”,在 [0.2, 0.4] 之间搜索“factor_translate_y”。它将使用 RandAugment,在 [0, 3] 之间搜索“augment_layers”。每个样本上的每一层都将从 rotate、translate_x 和 translate_y 中选择。