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 预处理层中图像增强操作的最佳组合。模型的输入形状应为 (height, width, channels)。模型的输出与输入形状相同。

参数

  • 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、整数或由两个整数组成的列表,用于控制应用的增强数量。默认为 3。当 augment_layers 为 0 时,所有变换按顺序应用。当 augment_layers 非零或是一个由两个整数组成的列表时,将使用 RandAugment(https://arxiv.org/abs/1909.13719) 的简化版本。为 'augment_layers' 创建一个搜索空间,搜索范围为 [0, augment_layers],或者如果 augment_layers 是一个列表,则在两个整数之间搜索。对于每次试验,超参数 '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 中选择。