TensorFlow函数教程:tf.nn.depthwise_conv2d_native
2019-01-31 13:46 更新
tf.nn.depthwise_conv2d_native函数
tf.nn.depthwise_conv2d_native(
input,
filter,
strides,
padding,
data_format='NHWC',
dilations=[1, 1, 1, 1],
name=None
)
定义在:tensorflow/python/ops/gen_nn_ops.py.
请参阅指南:神经网络>卷积运算
在给定 4-Dinput
和filter
张量的情况下计算 2-D 深度卷积.
给定的输入张量的形状为[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]
.
参数:
input
:一个Tensor
,必须是下列类型之一:half
,bfloat16
,float32
,float64
.filter
:一个Tensor
,必须与input
具有相同类型.strides
:ints
列表,长度为4的1-D,input
每个维度的滑动窗口的步幅.padding
:string
,可以是:"SAME", "VALID"
.要使用的填充算法的类型.data_format
:可选的string
,可以是:"NHWC", "NCHW"
;默认为"NHWC"
;指定输入和输出数据的数据格式;使用默认格式“NHWC”,数据按以下顺序存储:[batch, height, width, channels];或者,格式可以是“NCHW”,数据存储顺序为:[batch, channels, height, width].dilations
:ints
的可选列表,默认为[1, 1, 1, 1]
;长度为4的1-D张量,input
每个维度的扩张系数.如果设置为k> 1,则该维度上的每个滤镜元素之间将有k-1个跳过的单元格.维度顺序由值data_format
确定.批次和深度尺寸的扩张必须为1.name
:操作的名称(可选).
返回:
一个Tensor
,与input
有相同的类型.