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。配置增强中随机旋转变换因子的搜索空间。为每个 trial 选择一个因子。它设置了 trial 中所有样本的最大顺时针和逆时针旋转(以 pi 的分数表示)。默认值为 0.5。当 rotate 是单个数字时,搜索范围是 [0, rotate]。设置为 None 时关闭变换。
  • translate_x: 一个介于 [0, 1] 之间的数字,或一个包含两个介于 [0, 1] 之间数字的列表,或 None。配置增强中随机水平平移变换因子的搜索空间。为每个 trial 选择一个因子。它设置了 trial 中所有样本的最大水平平移(以相对于宽度的比例表示)。默认值为 0.4。当 translate_x 是单个数字时,搜索范围是 [0, translate_x]。设置为 None 时关闭变换。
  • translate_y: 一个介于 [0, 1] 之间的数字,或一个包含两个介于 [0, 1] 之间数字的列表,或 None。配置增强中随机垂直平移变换因子的搜索空间。为每个 trial 选择一个因子。它设置了 trial 中所有样本的最大垂直平移(以相对于高度的比例表示)。默认值为 0.4。当 translate_y 是单个数字时,搜索范围是 [0, translate_y]。设置为 None 时关闭变换。
  • contrast: 一个介于 [0, 1] 之间的数字,或一个包含两个介于 [0, 1] 之间数字的列表,或 None。配置增强中随机对比度变换因子的搜索空间。为每个 trial 选择一个因子。它设置了 trial 中所有样本的最大对比度变化比例。默认值为 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 是一个列表,则在两个整数之间搜索。对于每个 trial,超参数 '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'。这两个增强会应用于所有样本,每个 trial 选择一个因子。

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 中选择。