当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.nn.separable_conv2d用法及代码示例


带有可分离滤波器的二维卷积。

用法

tf.nn.separable_conv2d(
    input, depthwise_filter, pointwise_filter, strides, padding, data_format=None,
    dilations=None, name=None
)

参数

  • input 4-D Tensor 形状根据 data_format
  • depthwise_filter 4-D Tensor 形状为 [filter_height, filter_width, in_channels, channel_multiplier] 。包含深度为 1 的 in_channels 卷积滤波器。
  • pointwise_filter 4-D Tensor 形状为 [1, 1, channel_multiplier * in_channels, out_channels]depthwise_filter 空间卷积后的逐点过滤以混合通道。
  • strides 大小为 4 的一维。input 的每个维度的深度卷积的步幅。
  • padding 控制在应用深度卷积之前如何填充图像。可以是字符串 "SAME""VALID" 指示要使用的填充算法的类型,或者是一个 Python 列表,指示每个维度的开始和结束处的显式填充。当使用显式填充且 data_format 为 "NHWC" 时,应采用 [[0, 0], [pad_top, pad_bottom], [pad_left, pad_right], [0, 0]] 的形式。当使用显式填充且 data_format 为 "NCHW" 时,应采用 [[0, 0], [0, 0], [pad_top, pad_bottom], [pad_left, pad_right]] 的形式。
  • data_format 输入的数据格式。 "NHWC"(默认)或"NCHW"。
  • dilations 大小为 2 的 1-D。我们在空洞卷积中跨 heightwidth 维度对输入值进行采样的膨胀率。如果大于 1,则所有步幅值都必须为 1。
  • name 此操作的名称(可选)。

返回

  • 一个 4-D Tensor,形状根据 'data_format'。例如,data_format="NHWC",形状为 [batch, out_height, out_width, out_channels]。

执行单独作用于通道的深度卷积,然后执行混合通道的点卷积。请注意,这是维度 [1, 2]3 之间的可分离性,而不是维度 12 之间的空间可分离性。

详细地说,使用默认的 NHWC 格式,

output[b, i, j, k] = sum_{di, dj, q, r}
    input[b, strides[1] * i + di, strides[2] * j + dj, q] *
    depthwise_filter[di, dj, q, r] *
    pointwise_filter[0, 0, q * channel_multiplier + r, k]

strides 仅控制深度卷积的步幅,因为逐点卷积的隐含步幅为 [1, 1, 1, 1] 。必须有 strides[0] = strides[3] = 1 。对于相同水平和垂直步幅的最常见情况,strides = [1, stride, stride, 1]。如果 rate 中的任何值大于 1,我们将执行深度深度卷积,在这种情况下,strides 张量中的所有值都必须等于 1。

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.nn.separable_conv2d。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。