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


Python tf.raw_ops.DepthwiseConv2dNative用法及代码示例


在给定 4-D inputfilter 张量的情况下计算 2-D 深度卷积。

用法

tf.raw_ops.DepthwiseConv2dNative(
    input, filter, strides, padding, explicit_paddings=[],
    data_format='NHWC', dilations=[1, 1, 1, 1], name=None
)

参数

  • input 一个Tensor。必须是以下类型之一:half , bfloat16 , float32 , float64
  • filter 一个Tensor。必须与 input 具有相同的类型。
  • strides ints 的列表。长度为 4 的一维。input 的每个维度的滑动窗口的步幅。
  • padding string 来自:"SAME", "VALID", "EXPLICIT"。要使用的填充算法的类型。
  • explicit_paddings ints 的可选列表。默认为 []
  • data_format 一个可选的 string 来自: "NHWC", "NCHW" 。默认为 "NHWC" 。指定输入和输出数据的数据格式。使用默认格式"NHWC",数据存储顺序为:[batch, height, width, channels]。或者,格式可以是"NCHW",数据存储顺序为:[batch, channels, height, width]。
  • dilations ints 的可选列表。默认为 [1, 1, 1, 1] 。长度为 4 的一维张量。input 的每个维度的膨胀因子。如果设置为 k > 1,则在该维度上的每个过滤器元素之间将有 k-1 个跳过的单元格。维度顺序由 data_format 的值决定,详见上文。批量和深度维度中的膨胀必须为 1。
  • name 操作的名称(可选)。

返回

  • 一个Tensor。具有与 input 相同的类型。

给定一个形状为 [batch, in_height, in_width, in_channels] 的输入张量和一个形状为 [filter_height, filter_width, in_channels, channel_multiplier] 的滤波器/内核张量,包含深度为 1 的 in_channels 卷积滤波器,depthwise_conv2d 对每个输入通道应用不同的滤波器(从 1 个通道扩展到 channel_multiplier 个通道),然后将结果连接在一起。因此,输出具有in_channels * channel_multiplier 通道。

for k in 0..in_channels-1
  for q in 0..channel_multiplier-1
    output[b, i, j, k * channel_multiplier + q] =
      sum_{di, dj} input[b, strides[1] * i + di, strides[2] * j + dj, k] *
                        filter[di, dj, k, q]

必须有 strides[0] = strides[3] = 1 。对于相同水平和顶点步幅的最常见情况,strides = [1, stride, stride, 1]

相关用法


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