Keras 卷积层

2024年8月28日 | 阅读27分钟

Conv1D

它指一维卷积层。例如,时间卷积生成一个卷积核以创建输出张量。卷积核与输入层在单一时间(空间)维度上进行卷积。如果 use_bias 为 True,将生成一个偏置向量并将其包含到输出中。如果 activation 设置为 None,它将被应用到输出。

当我们使用 conv1D 层作为模型中的初始层时,它为我们提供了一个 input_shape 参数,它是一个整数元组或 None。它不包含批次轴。

参数

  • filters: Filters 指的是一个整数,表示输出空间维度或卷积中存在的输出滤波器数量。
  • kernel_size: 它是一个整数或一个单独整数的元组/列表,指定一维卷积窗口的长度。
  • strides: 它是一个整数或一个单独整数的元组/列表,指定卷积的步长。指定任何步长值 != 1 与指定任何 dilation_rate 值 != 1 不兼容。
  • padding: 它是“valid”、“casual”或“same”之一,其中 valid 表示没有填充,same 表示以一种方式填充输入,使其生成与原始输入长度相同的输出,而 casual 导致膨胀输出,即 output[t] 独立于 output[t + 1:]。为了使输出长度与输入相似,可以使用零填充。填充的概念在对时间数据进行建模时很有用,以确保模型不会违反时间
  • data_format: 它是一个字符串,“channels_last”或“channels_first”,表示输入维度的顺序。这里,“channels_last”链接到输入形状 (batch, steps, channels),这是 Keras 中时间数据的默认格式。然而,“channels_first”用于关联输入形状 (batch, channels, steps)
  • dilation_rate: 它是一个整数或一个单独整数的元组/列表,与膨胀卷积的膨胀率有关。它目前关联任何 dilation_rate 值 != 1 与指定任何 strides 值 != 1 不兼容。
  • activation: 它指的是要使用的激活函数。当没有指定时,默认情况下它是线性激活 a(x) = x,或者我们可以说没有应用激活函数。
  • use_bias: 它表示一个布尔值,显示该层是否使用偏置向量。
  • kernel_initializer: 它可以定义为 kernel 权重矩阵的初始化器。
  • bias_initializer: 它指的是偏置向量的初始化器。
  • kernel_regularizer: 它指的是应用于 kernel 权重矩阵的正则化函数。
  • bias_regularizer: 它可以定义为应用于偏置向量的正则化函数。
  • activity_regularizer: 它指的是应用于激活(层的输出)的正则化函数。
  • kernel_constraint: 它是一个应用于核矩阵的约束函数。
  • bias_constraint: 它可以定义为应用于偏置向量的约束函数。

输入形状

它指的是形状为 (batch, steps, channels) 的 3D 张量。

输出形状

输出形状是形状为 (batch, new_steps, filters) steps 的 3D 张量。值可能因步长和填充而异。

Conv2D

它指二维卷积层,如图像上的空间卷积。它开发一个卷积核,可以与输入层进行卷积以生成张量输出。如果我们将 use_bias 设置为 True,它将创建一个偏置向量,该向量将被添加到输出中。同样,如果我们将 activation 设置为 None,它也将被添加到输出中。该层可以通过使用 input_shape 关键字参数作为模型中的初始层,该参数是一个整数元组,不包含批次轴。

参数

  • filter: 它是一个整数,表示输出空间维度或卷积中存在的输出滤波器总数。
  • kernel_size: 它可以是整数,也可以是 2 个整数的元组/列表,表示 2D 卷积窗口的高度和宽度。它也可以是单个整数,表示空间域中所有其余值的相同值。
  • strides: 它是一个整数或 2 个整数的元组/列表,表示沿着高度和宽度的卷积步长。它可以作为单个整数存在,表示空间维度的相同值。如果指定任何步长值 != 1,则表示它与指定 dilation_rate 值 != 1 不兼容。
  • padding:valid”或“same”之一,其中“same”反映后端与 strides !=1 之间存在一些不一致。
  • data_format: 它是一个字符串,“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”。
  • dilation_rate: 它可以是整数或 2 个整数的元组/列表,与膨胀卷积要使用的膨胀率有关。它可能有一个单独的整数,表示空间维度的相同值。如果指定任何步长值 != 1,则表示它与指定 dilation_rate 值 != 1 不兼容。
  • activation: 它指的是要使用的激活函数。当没有指定时,默认情况下它是线性激活 a(x) = x,或者我们可以说没有应用激活函数。
  • use_bias: 它表示一个布尔值,显示该层是否使用偏置向量。
  • kernel_initializer: 它可以定义为 kernel 权重矩阵的初始化器。
  • bias_initializer: 它指的是偏置向量的初始化器。
  • kernel_regularizer: 它指的是应用于 kernel 权重矩阵的正则化函数。
  • bias_regularizer: 它可以定义为应用于偏置向量的正则化函数。
  • activity_regularizer: 它指的是应用于激活(层的输出)的正则化函数。
  • kernel_constraint: 它是一个应用于核矩阵的约束函数。
  • bias_constraint: 它可以定义为应用于偏置向量的约束函数。

输入形状

如果 data_format"channels_first",则 4D 张量的输入形状是 (batch, channels, rows, cols);否则,如果 data_format"channels_last",则 4D 张量的输入形状是 (batch, rows, cols, channels)

输出形状

如果 data_format"channels_first",则 4D 张量的输出形状将是 (batch, filters, new_rows, new_cols);否则,如果 data_format"channels_last",则输出将是 (batch, new_rows, new_cols, filters)。行和列的值可能由于填充而变化。

SeparableConv1D

它是一种深度可分离的一维卷积。首先,它在单个通道上完成深度空间卷积,然后是逐点卷积以混合结果通道输出。参数 depth_multiplier 管理以深度方式为每个输入通道生成的输出通道数。

可分离卷积可以通过将卷积核分解为两个较小的核来轻松理解。

参数

  • filter: 它是一个整数,表示输出空间维度或卷积中存在的输出滤波器总数。
  • kernel_size: 它可以是整数或单个整数的元组/列表,表示一维卷积窗口的长度。
  • strides: 它是一个整数或单个整数的元组/列表,表示卷积步长长度。如果指定任何步长值 != 1,则表示它与指定 dilation_rate 值 != 1 不兼容。
  • padding:valid”或“same”之一,其中“same”显示后端与 strides !=1 之间存在一些不一致。
  • data_format: 它是任一模式,即“channels_first”对应输入形状:(batch, channels, steps) 或“channels_last”对应 (batch, steps, channels)
  • dilation_rate: 它可以是整数或单个整数的元组/列表,与膨胀卷积要使用的膨胀率有关。如果指定任何 stride 值 != 1,则表示它与指定 dilation_rate 值 != 1 不兼容。
  • depth_multiplier: 它表示每个相应输入通道的深度卷积通道总数,相当于 filters_in * depth_multiplier
  • activation: 它指的是要使用的激活函数。当没有指定时,默认情况下它是线性激活 a(x) = x,或者我们可以说没有应用激活函数。
  • use_bias: 它表示一个布尔值,显示该层是否使用偏置向量。
  • depthwise_initializer: 它指的是深度核矩阵的初始化器。
  • pointwise_initializer: 它指的是逐点核矩阵的初始化器。
  • bias_initializer: 它指的是偏置向量的初始化器。
  • depthwise_regularizer: 它指的是应用于深度核矩阵的正则化函数。
  • pointwise_regularizer: 它指的是应用于逐点核矩阵的正则化函数。
  • bias_regularizer: 它可以定义为应用于偏置向量的正则化函数。
  • activity_regularizer: 它指的是应用于激活(层的输出)的正则化函数。
  • depthwise_constraint: 它可以定义为应用于深度核矩阵的约束函数。
  • pointwise_constraint: 它可以定义为应用于逐点核矩阵的约束函数。
  • bias_constraint: 它可以定义为应用于偏置向量的约束函数。

输入形状

如果 data_format"channels_first",则 3D 张量的输入形状是 (batch, channels, steps);否则,如果 data_format"channels_last",则 3D 张量的输入形状是 (batch, steps, channels)

输出形状

如果 data_format"channels_first",则 3D 张量的输出形状将是 (batch, filters, new_steps);否则,如果 data_format"channels_last",则 3D 张量的输出形状将是 (batch, new_steps, filters)new_steps 的值可能因填充或步长而异。

SeparableConv2D

它是一种深度可分离的 2D 卷积。首先,它在单个通道上执行深度空间卷积,然后进行逐点卷积以混合结果通道的输出。参数 depth_multiplier 管理以深度方式为每个输入通道生成的输出通道数。

可分离卷积可以通过将卷积核分解为两个较小的核或作为 Inception 块的扩展来轻松理解。

参数

  • filter: 它是一个整数,表示输出空间维度或卷积中存在的输出滤波器总数。
  • kernel_size: 它可以是整数,也可以是 2 个整数的元组/列表,表示 2D 卷积窗口的高度和宽度。它也可以是单个整数,表示空间域中所有其余值的相同值。
  • strides: 它是一个整数或 2 个整数的元组/列表,表示沿着高度和宽度的卷积步长。它也可以是一个单独的整数,表示所有空间域的相同值。如果指定任何步长值 != 1,则表示它与指定 dilation_rate 值 != 1 不兼容。
  • padding:valid”或“same”之一,其中“same”显示后端与 strides !=1 之间存在一些不一致。
  • data_format: 它是任一模式,即“channels_first”对应输入形状:(batch, channels, height, width) 或“channels_last”对应 (batch, height, width, channels)。它默认为 Keras 配置中 ~/.keras/keras.json 中找到的 image_data_format 值。如果在该文件夹中找不到,则它位于“channels_last”。
  • dilation_rate: 它可以是整数或 2 个整数的元组/列表,与膨胀卷积要使用的膨胀率有关。如果指定任何 stride 值 != 1,则表示它与指定 dilation_rate 值 != 1 不兼容。
  • depth_multiplier: 它表示每个相应输入通道的深度卷积通道总数,相当于 filters_in * depth_multiplier
  • activation: 它指的是要使用的激活函数。当没有指定时,默认情况下它是线性激活 a(x) = x,或者我们可以说没有应用激活函数。
  • use_bias: 它表示一个布尔值,显示该层是否使用偏置向量。
  • depthwise_initializer: 它指的是深度核矩阵的初始化器。
  • pointwise_initializer: 它指的是逐点核矩阵的初始化器。
  • bias_initializer: 它指的是偏置向量的初始化器。
  • depthwise_regularizer: 它指的是应用于深度核矩阵的正则化函数。
  • pointwise_regularizer: 它指的是应用于逐点核矩阵的正则化函数。
  • bias_regularizer: 它可以定义为应用于偏置向量的正则化函数。
  • activity_regularizer: 它指的是应用于激活(层的输出)的正则化函数。
  • depthwise_constraint: 它可以定义为应用于深度核矩阵的约束函数。
  • pointwise_constraint: 它可以定义为应用于逐点核矩阵的约束函数。
  • bias_constraint: 它可以定义为应用于偏置向量的约束函数。

输入形状

如果 data_format"channels_first",则 4D 张量的输入形状是 (batch, channels, rows, cols);否则,如果 data_format"channels_last",则 4D 张量的输入形状是 (batch, rows, cols, channels)

输出形状

如果 data_format"channels_first",则 4D 张量的输出形状将是 (batch, filters, new_rows, new_cols);否则,如果 data_format"channels_last",则 4D 张量的输出形状将是 (batch, new_rows, new_cols, filters)rowscols 的值可能因填充或步长而异。

DepthwiseConv2D

它是一个深度 2D 卷积层,首先执行类似于深度空间卷积的操作,其中它在每个输入通道上单独执行。参数 depth_multiplier 管理以深度方式为每个输入通道生成的输出通道数。

参数

  • kernel_size: 它可以是整数或 2 个整数的元组/列表,表示 2D 卷积窗口的高度和宽度。它也可以是单个整数,表示所有空间域的相同值。
  • strides: 它是一个整数或 2 个整数的元组/列表,表示沿着高度和宽度的卷积步长。它可以是一个单独的整数,表示所有空间域的相同值。如果指定任何步长值 != 1,则表示它与指定 dilation_rate 值 != 1 不兼容。
  • padding:valid”或“same”之一,其中“same”显示后端与 strides !=1 之间存在一些不一致。
  • data_format: 它是任一模式,即“channels_first”对应输入形状:(batch, channels, height, width) 或“channels_last”对应 (batch, height, width, channels)。它默认为 Keras 配置中 ~/.keras/keras.json 中找到的 image_data_format 值。如果在该文件夹中找不到,则它位于“channels_last”。
  • dilation_rate: 它可以是整数或 2 个整数的元组/列表,与膨胀卷积要使用的膨胀率有关。如果指定任何 stride 值 != 1,则表示它与指定 dilation_rate 值 != 1 不兼容。
  • depth_multiplier: 它表示每个相应输入通道的深度卷积通道总数,相当于 filters_in * depth_multiplier
  • activation: 它指的是要使用的激活函数。当没有指定时,默认情况下它是线性激活 a(x) = x,或者我们可以说没有应用激活函数。
  • use_bias: 它表示一个布尔值,显示该层是否使用偏置向量。
  • depthwise_initializer: 它指的是深度核矩阵的初始化器。
  • bias_initializer: 它指的是偏置向量的初始化器。
  • depthwise_regularizer: 它指的是应用于深度核矩阵的正则化函数。
  • bias_regularizer: 它可以定义为应用于偏置向量的正则化函数。
  • activity_regularizer: 它指的是应用于激活(层的输出)的正则化函数。
  • depthwise_constraint: 它可以定义为应用于深度核矩阵的约束函数。
  • bias_constraint: 它可以定义为应用于偏置向量的约束函数。

输入形状

如果 data_format"channels_first",则 4D 张量的输入形状是 (batch, channels, rows, cols);否则,如果 data_format"channels_last",则 4D 张量的输入形状是 (batch, rows, cols, channels)

输出形状

如果 data_format"channels_first",则 4D 张量的输出形状将是 (batch, channels * depth_multiplier, new_rows, new_cols);否则,如果 data_format"channels_last",则 4D 张量的输出形状将是 (batch, new_rows, new_cols, channels * depth_multiplier)rowscols 的值可能因填充或步长而异。

Conv2DTranspose

它是一个转置卷积层,有时被错误地称为反卷积。但实际上,它不执行反卷积。Conv2DTranspose 层主要在变换方向与普通卷积相反时需要,或者简单地说,当变换从具有某个卷积输出形状的东西变为具有卷积输入形状的东西时。

该层可以通过使用参数 input_shape 作为初始层,该参数只是一个整数元组,不包含批次轴。

参数

  • filter: 它是一个整数,表示输出空间维度或卷积中存在的输出滤波器总数。
  • kernel_size: 它可以是整数或 2 个整数的元组/列表,表示 2D 卷积窗口的高度和宽度。它也可以是单个整数,表示所有空间域的相同值。
  • strides: 它是一个整数或 2 个整数的元组/列表,表示沿着高度和宽度的卷积步长。它可以是一个单独的整数,表示所有空间域的相同值。如果指定任何步长值 != 1,则表示它与指定 dilation_rate 值 != 1 不兼容。
  • padding:valid”或“same”之一,其中“same”显示后端与 strides !=1 之间存在一些不一致。
  • output_padding: 它可以是整数或 2 个整数的元组/列表,表示 2D 卷积窗口的高度和宽度。它也可以是一个单独的整数,表示所有空间域的相同值。沿任何指定维度输出数据填充的数量应小于沿相同维度的步长。默认情况下,它设置为 None,这表示输出形状是推断的。
  • data_format: 它是任一模式,即“channels_first”对应输入形状:(batch, channels, height, width) 或“channels_last”对应 (batch, height, width, channels)。它默认为 Keras 配置中 ~/.keras/keras.json 中找到的 image_data_format 值。如果在该文件夹中找不到,则它位于“channels_last”。
  • dilation_rate: 它可以是整数或 2 个整数的元组/列表,与膨胀卷积要使用的膨胀率有关。如果指定任何 stride 值 != 1,则表示它与指定 dilation_rate 值 != 1 不兼容。
  • activation: 它指的是要使用的激活函数。当没有指定时,默认情况下它是线性激活 a(x) = x,或者我们可以说没有应用激活函数。
  • use_bias: 它表示一个布尔值,显示该层是否使用偏置向量。
  • kernel_initializer: 它可以定义为 kernel 权重矩阵的初始化器。
  • bias_initializer: 它指的是偏置向量的初始化器。
  • kernel_regularizer: 它指的是应用于 kernel 权重矩阵的正则化函数。
  • bias_regularizer: 它可以定义为应用于偏置向量的正则化函数。
  • activity_regularizer: 它指的是应用于激活(层的输出)的正则化函数。
  • kernel_constraint: 它是一个应用于核矩阵的约束函数。
  • bias_constraint: 它可以定义为应用于偏置向量的约束函数。

输入形状

如果 data_format"channels_first",则 4D 张量的输入形状是 (batch, channels, rows, cols);否则,如果 data_format"channels_last",则 4D 张量的输入形状是 (batch, rows, cols, channels)

输出形状

如果 data_format"channels_first",则 4D 张量的输出形状将是 (batch, filters, new_rows, new_cols);否则,如果 data_format"channels_last",则 4D 张量的输出形状将是 (batch, new_rows, new_cols, filters)rowscols 的值可能因填充而异。如果指定了 output_padding

Conv3D

它是一个 3D 卷积层;例如,在体上进行空间卷积有助于创建卷积核,该卷积核与输入层进行卷积以生成张量的输出。如果将 use_bias 设置为 True,它会创建一个偏置向量,然后将该偏置向量添加到输出中。它仅在 activation 设置为 None 时应用于输出。

该层可以通过使用 input_shape 关键字参数作为模型中的第一层,该参数只是一个整数元组,不包含批次轴。

参数

  • filter: 它是一个整数,表示输出空间维度或卷积中存在的输出滤波器总数。
  • kernel_size: 它可以是整数或 3 个整数的元组/列表,表示 3D 卷积窗口的深度、高度和宽度。它也可以是单个整数,表示所有空间域的相同值。
  • strides: 它是一个整数或 3 个整数的元组/列表,表示沿着深度、高度和宽度的卷积步长。它可以是一个单独的整数,表示所有空间域的相同值。如果指定任何步长值 != 1,则表示它与指定 dilation_rate 值 != 1 不兼容。
  • padding:valid”或“same”之一,其中“same”显示后端与 strides !=1 之间存在一些不一致。
  • data_format: 它是任一模式,即“channels_first”对应输入形状:(batch, channels, spatial_dim1, spatial_dim2, spatial_dim3) 或“channels_last”对应 (batch, spatial_dim1, spatial_dim2, spatial_dim3, channels)。它默认为 Keras 配置中 ~/.keras/keras.json 中找到的 image_data_format 值。如果在该文件夹中找不到,则它位于“channels_last”。
  • dilation_rate: 它可以是整数或 3 个整数的元组/列表,与膨胀卷积要使用的膨胀率有关。如果指定任何 stride 值 != 1,则表示它与指定 dilation_rate 值 != 1 不兼容。
  • activation: 它指的是要使用的激活函数。当没有指定时,默认情况下它是线性激活 a(x) = x,或者我们可以说没有应用激活函数。
  • use_bias: 它表示一个布尔值,显示该层是否使用偏置向量。
  • kernel_initializer: 它可以定义为 kernel 权重矩阵的初始化器。
  • bias_initializer: 它指的是偏置向量的初始化器。
  • kernel_regularizer: 它指的是应用于 kernel 权重矩阵的正则化函数。
  • bias_regularizer: 它可以定义为应用于偏置向量的正则化函数。
  • activity_regularizer: 它指的是应用于激活(层的输出)的正则化函数。
  • kernel_constraint: 它是一个应用于核矩阵的约束函数。
  • bias_constraint: 它可以定义为应用于偏置向量的约束函数。

输入形状

如果 data_format"channels_first",则 5D 张量的输入形状是 (batch, channels, conv_dim1, conv_dim2, conv_dim3);否则,如果 data_format"channels_last",则 5D 张量的输入形状是 (batch, conv_dim1, conv_dim2, conv_dim3, channels)

输出形状

如果 data_format"channels_first",则 5D 张量的输出形状将是 (batch, filters, new_conv_dim1, new_conv_dim2, new_conv_dim3);否则,如果 data_format"channels_last",则 5D 张量的输出形状将是 (batch, new_conv_dim1, new_conv_dim2, new_conv_dim3, filters)new_conv_dim1、new_conv_dim2new_conv_dim3 的值可能因填充而异。

Conv3D Transpose

它是一个转置卷积层,有时也称为反卷积。该层主要在变换方向与普通卷积相反时需要,或者简单地说,当变换从具有某个卷积输出形状的东西变为具有卷积输入形状的东西时。

该层可以通过使用参数 input_shape 作为初始层,该参数只是一个整数元组,不包含批次轴。

参数

  • filter: 它是一个整数,表示输出空间维度或卷积中存在的输出滤波器总数。
  • kernel_size: 它可以是整数或 3 个整数的元组/列表,表示 3D 卷积窗口的深度、高度和宽度。它也可以是单个整数,表示所有空间域的相同值。
  • strides: 它是一个整数或 3 个整数的元组/列表,表示沿着深度、高度和宽度的卷积步长。它可以是一个单独的整数,表示所有空间域的相同值。如果指定任何步长值 != 1,则表示它与指定 dilation_rate 值 != 1 不兼容。
  • padding:valid”或“same”之一,其中“same”显示后端与 strides !=1 之间存在一些不一致。
  • output_padding: 它可以是整数或 3 个整数的元组/列表,表示 3D 卷积窗口的深度、高度和宽度。它也可以是单个整数,表示所有空间域的相同值。沿任何指定维度输出数据填充的数量应小于沿相同维度的步长。默认情况下,它设置为 None,这表示输出形状是推断的。
  • data_format: 它是任一模式,即“channels_first”对应输入形状:(batch, channels, depth, height, width) 或“channels_last”对应 (batch, depth, height, width, channels)。它默认为 Keras 配置中 ~/.keras/keras.json 中找到的 image_data_format 值。如果在该文件夹中找不到,则它位于“channels_last”。
  • dilation_rate: 它可以是整数或 3 个整数的元组/列表,与膨胀卷积要使用的膨胀率有关。如果指定任何 stride 值 != 1,则表示它与指定 dilation_rate 值 != 1 不兼容。
  • activation: 它指的是要使用的激活函数。当没有指定时,默认情况下它是线性激活 a(x) = x,或者我们可以说没有应用激活函数。
  • use_bias: 它表示一个布尔值,显示该层是否使用偏置向量。
  • kernel_initializer: 它可以定义为 kernel 权重矩阵的初始化器。
  • bias_initializer: 它指的是偏置向量的初始化器。
  • kernel_regularizer: 它指的是应用于 kernel 权重矩阵的正则化函数。
  • bias_regularizer: 它可以定义为应用于偏置向量的正则化函数。
  • activity_regularizer: 它指的是应用于激活(层的输出)的正则化函数。
  • kernel_constraint: 它是一个应用于核矩阵的约束函数。
  • bias_constraint: 它可以定义为应用于偏置向量的约束函数。

输入形状

如果 data_format"channels_first",则 5D 张量的输入形状是 (batch, channels, depth, rows, cols);否则,如果 data_format"channels_last",则 5D 张量的输入形状是 (batch, depth, rows, cols, channels)

输出形状

如果 data_format"channels_first",则 5D 张量的输出形状将是 (batch, filters, new_depth, new_rows, new_cols);否则,如果 data_format"channels_last",则 5D 张量的输出形状将是 (batch, new_depth, new_rows, new_cols, filters)depth、rowscols 的值可能因填充而异。如果指定了 output_padding

Cropping1D

它是一个用于一维输入的裁剪层,例如时间序列,沿轴 1(即时间维度)进行裁剪。

参数

  • cropping: 它是一个元组,长度为 2 的整数,确保在轴 1(裁剪维度)的开始和结束处修剪的单元总数。如果提供单个整数,则在开始和结束处使用相同的值。

输入形状

它是一个形状为 (batch, axis_to_crop, features) 的 3D 张量。

输出形状

它是一个形状为 (batch, cropped_axis, features) 的 3D 张量。

Cropping2D

它是一个二维裁剪层,例如沿空间维度(如高度和宽度)裁剪图片。

参数

  • cropping: 它是一个整数,或 2 个整数的元组,或 2 个 2 个整数元组的元组,使得如果 int,则对高度和宽度应用相同的对称裁剪;如果 2 个整数的元组,则解释为高度和宽度的两个不同对称裁剪值:(symmetric_height_crop, symmetric_width_crop)
  • data_format: 它是任一模式,即“channels_first”对应输入形状:(batch, channels, height, width) 或“channels_last”对应 (batch, height, width, channels)。它默认为 Keras 配置中 ~/.keras/keras.json 中找到的 image_data_format 值。如果在该文件夹中找不到,则它位于“channels_last”。

输入形状

如果 data_format"channels_first",则 4D 张量的输入形状是 (batch, channels, rows, cols);否则,如果 data_format"channels_last",则 4D 张量的输入形状是 (batch, rows, cols, channels)

输出形状

如果 data_format"channels_first",则 4D 张量的输出形状将是 (batch, channels, cropped_rows, cropped_cols);否则,如果 data_format"channels_last",则 4D 张量的输出形状将是 (batch, cropped_rows, cropped_cols, channels)

示例

Cropping3D

它是一个 3D 裁剪层,就像时空或空间裁剪一样。

参数

  • cropping: 它是一个整数,或 3 个整数的元组,或 3 个 2 个整数元组的元组,使得:如果 int,则对深度、高度和宽度应用相同的对称裁剪;如果 3 个整数的元组,则解释为深度、高度和宽度的三个不同对称裁剪值:(symmetric_dim1_crop, symmetric_dim2_crop, symmetric_dim3_crop);如果 3 个 2 个整数元组的元组,则解释为 ((left_dim1_crop, right_dim1_crop), (left_dim2_crop, right_dim2_crop), (left_dim3_crop, right_dim3_crop))
  • data_format: 它是一个字符串,模式为“channels_first”,对应输入形状:(batch, channels, spatial_dim1, spatial_dim2, spatial_dim3),或“channels_last”,对应 (batch, spatial_dim1, spatial_dim2, spatial_dim3, channels)。它默认为 Keras 配置中 ~/.keras/keras.json 中找到的 image_data_format 值。如果在该文件夹中找不到,则它位于“channels_last”。

输入形状

如果 data_format"channels_first",则 5D 张量的输入形状是 (batch, depth, first_axis_to_crop, second_axis_to_crop, third_axis_to_crop);否则,如果 data_format"channels_last",则 5D 张量的输入形状是 (batch, first_axis_to_crop, second_axis_to_crop, third_axis_to_crop, depth)

输出形状

如果 data_format"channels_first",则 5D 张量的输出形状将是 (batch, depth, first_cropped_axis, second_cropped_axis, third_cropped_axis);否则,如果 data_format"channels_last",则 5D 张量的输出形状将是 (batch, first_cropped_axis, second_cropped_axis, third_cropped_axis, depth)

UpSampling1D

它是一个用于一维输入的上采样层,它将每个时间步重复 size 次,沿着时间轴。

参数

  • size: 它是一个整数,表示上采样因子。

输入形状

它是一个形状为 (batch, steps, features) 的 3D 张量。

输出形状

它是一个形状为 (batch, upsampled_steps, features) 的 3D 张量。

UpSampling2D

它是一个用于二维输入的上采样层,它将数据行重复 size [0] 次,数据列重复 size [1] 次。

参数

  • size: 它是一个整数或 2 个整数的元组,表示行和列的上采样因子。
  • data_format: 它是一个字符串,模式为“channels_first”,对应输入形状:(batch, channels, height, width),或“channels_last”,对应 (batch, height, width, channels)。它默认为 Keras 配置中 ~/.keras/keras.json 中找到的 image_data_format 值。如果在该文件夹中找不到,则它位于“channels_last”。
  • interpolation: 它是一个字符串,可以是 nearestbilinear。需要说明的是,CNTK 尚未支持 bilinear 上采样,并且在使用 Theano 时,只支持 size=(2, 2)。

输入形状

如果 data_format"channels_last",则 4D 张量的输入形状是 (batch, rows, cols, channels);否则,如果 data_format"channels_first",则 4D 张量的输入形状是 (batch, channels, rows, cols)

输出形状

如果 data_format"channels_last",则 4D 张量的输出形状是 (batch, upsampled_rows, upsampled_cols, channels);否则,如果 data_format"channels_first",则 4D 张量的输出形状是 (batch, channels, upsampled_rows, upsampled_cols)

UpSampling3D

它指的是用于三维输入的上采样层,它将数据的第一个维度重复 size [0] 次,第二个维度重复 size [1] 次,第三个维度重复 size [2] 次。

参数

  • size: 它是一个整数或 3 个整数的元组,表示 dim1、dim2 和 dim3 的上采样因子。
  • data_format: 它是一个字符串,模式为“channels_first”,对应输入形状:(batch, channels, spatial_dim1, spatial_dim2, spatial_dim3),或“channels_last”,对应 (batch, spatial_dim1, spatial_dim2, spatial_dim3, channels)。它默认为 Keras 配置中 ~/.keras/keras.json 中找到的 image_data_format 值。如果在该文件夹中找不到,则它位于“channels_last”。

输入形状

如果 data_format"channels_last",则 5D 张量的输入形状是 (batch, dim1, dim2, dim3, channels);否则,如果 data_format"channels_first",则 5D 张量的输入形状是 (batch, channels, dim1, dim2, dim3)

输出形状

如果 data_format"channels_last",则 4D 张量的输出形状是 (batch, upsampled_dim1, upsampled_dim2, upsampled_dim3, channels);否则,如果 data_format"channels_first",则 4D 张量的输出形状是 (batch, channels, upsampled_dim1, upsampled_dim2, upsampled_dim3)

ZeroPadding1D

它指的是一维输入的零填充层。例如,时间序列。

参数

  • padding: 它是一个整数,或整数元组(长度为 2)或字典,其中 If int 表示在填充维度(轴 1)的开始和结束处添加的零的总数;而在 If a tuple of int(长度为 2)的情况下,零添加到填充维度的开始和结束处 ((left_pad, right_pad))

输入形状

它是一个形状为 (batch, axis_to_pad, features) 的 3D 张量。

输出形状

它指的是一个形状为 (batch, padded_axis, features) 的 3D 张量。

ZeroPadding2D

它指的是一个二维输入零填充层(例如图片),支持在张量图像的顶部、底部、左侧和右侧添加零行和零列。

参数

  • padding: 它是一个整数,或 2 个整数的元组,或 2 个 2 个整数元组的元组;其中,如果 int,则对高度和宽度应用相同的对称填充;如果 2 个整数的元组,则将其视为高度和宽度的两个不同对称填充值:(symmetric_height_pad, symmetric_width_pad);而如果 2 个 2 个整数元组的元组,则将其理解为 ((top_pad, bottom_pad), (left_pad, right_pad))
  • data_format: 它是一个字符串,模式为“channels_first”,对应输入形状:(batch, channels, height, width),或“channels_last”,对应 (batch, height, width, channels)。它默认为 Keras 配置中 ~/.keras/keras.json 中找到的 image_data_format 值。如果在该文件夹中找不到,则它位于“channels_last”。

输入形状

如果 data_format"channels_last",则 4D 张量的输入形状是 (batch, rows, cols, channels);否则,如果 data_format"channels_first",则 4D 张量的输入形状是 (batch, channels, rows, cols)

输出形状

如果 data_format"channels_last",则 4D 张量的输出形状是 (batch, padded_rows, padded_cols, channels);否则,如果 data_format"channels_first",则 4D 张量的输出形状是 (batch, channels, padded_rows, padded_cols)

ZeroPadding3D

它是一个三维零填充层。例如,空间或时空填充。

参数

  • padding: 它是一个整数,或 3 个整数的元组,或 3 个 2 个整数元组的元组,使得:如果 int,则对深度、高度和宽度应用相同的对称填充;如果 3 个整数的元组,则解释为深度、高度和宽度的三个不同对称填充值:(symmetric_dim1_pad, symmetric_dim2_pad, symmetric_dim3_pad);如果 3 个 2 个整数元组的元组,则解释为 ((left_dim1_pad, right_dim1_pad), (left_dim2_pad, right_dim2_pad), (left_dim3_pad, right_dim3_pad))
  • data_format: 它是一个字符串,模式为“channels_first”,对应输入形状:(batch, channels, spatial_dim1, spatial_dim2, spatial_dim3),或“channels_last”,对应 (batch, spatial_dim1, spatial_dim2, spatial_dim3, channels)。它默认为 Keras 配置中 ~/.keras/keras.json 中找到的 image_data_format 值。如果在该文件夹中找不到,则它位于“channels_last”。

输入形状

如果 data_format"channels_first",则 5D 张量的输入形状是 (batch, depth, first_axis_to_pad, second_axis_to_pad, third_axis_to_pad);否则,如果 data_format"channels_last",则 5D 张量的输入形状是 (batch, first_axis_to_pad, second_axis_to_pad, third_axis_to_pad, depth)

输出形状

如果 data_format"channels_first",则 5D 张量的输出形状将是 (batch, depth, first_padded_axis, second_padded_axis, third_axis_to_pad);否则,如果 data_format"channels_last",则 5D 张量的输出形状将是 (batch, first_padded_axis, second_padded_axis, third_axis_to_pad, depth)


下一主题池化层