Keras 3 API 文档 / 层 API / 预处理层 / 图像增强层 / RandomRotation 层

RandomRotation 层

[源代码]

RandomRotation

keras.layers.RandomRotation(
    factor,
    fill_mode="reflect",
    interpolation="bilinear",
    seed=None,
    fill_value=0.0,
    data_format=None,
    **kwargs
)

一个预处理层,可在训练期间随机旋转图像。

此层将对每个图像应用随机旋转,并根据 fill_mode 填充空白空间。

默认情况下,随机旋转仅在训练期间应用。在推理时,该层不执行任何操作。如果需要在推理时应用随机旋转,请在调用该层时传递 training=True

输入像素值可以是任意范围(例如 [0., 1.)[0, 255]),并且可以是整数或浮点 dtype。默认情况下,该层将输出浮点数。

注意:该层可以在 tf.datagrain 管道中使用(无论您使用的是哪个后端),且是安全的。

输入形状

3D(未批次)或 4D(已批次)张量,形状为 (..., height, width, channels),格式为 "channels_last"

输出形状

3D(未批次)或 4D(已批次)张量,形状为 (..., height, width, channels),格式为 "channels_last"

参数

  • factor:一个浮点数,表示 2π 的分数,或者一个表示顺时针和逆时针旋转的下限和上限的长度为 2 的元组。正值表示逆时针旋转,负值表示顺时针旋转。当表示为单个浮点数时,该值将用于上下限。例如,factor=(-0.2, 0.3) 将导致输出旋转一个范围在 [-20% * 360, 30% * 360] 内的随机量。factor=0.2 将导致输出旋转一个范围在 [-20% * 360, 20% * 360] 内的随机量。
  • fill_mode: 输入边界之外的点根据给定模式({"constant", "reflect", "wrap", "nearest"} 之一)进行填充。
    • reflect: (d c b a | a b c d | d c b a) 输入通过对最后一个像素的边缘进行反射来扩展。
    • constant: (k k k k | a b c d | k k k k) 输入通过用相同的常量值 k = 0 填充边缘之外的所有值来扩展。
    • wrap: (a b c d | a b c d | a b c d) 输入通过环绕到对面边缘来扩展。
    • nearest: (a a a a | a b c d | d d d d) 输入通过最近的像素进行扩展。
  • interpolation:插值模式。支持的值:"nearest""bilinear"
  • seed:整数。用于创建随机种子。
  • fill_value:一个浮点数,表示当 fill_mode="constant" 时用于填充边界之外的值。
  • data_format: string,可以是 "channels_last""channels_first"。输入的维度顺序。"channels_last" 对应输入形状为 (batch, height, width, channels),而 "channels_first" 对应输入形状为 (batch, channels, height, width)。它默认为 Keras 配置文件 ~/.keras/keras.json 中的 image_data_format 值。如果您从未设置过,则默认为 "channels_last"