View source on GitHub
|
Depthwise 2-D convolution.
tf.compat.v1.nn.depthwise_conv2d(
input,
filter,
strides,
padding,
rate=None,
name=None,
data_format=None,
dilations=None
)
Given a 4D input tensor ('NHWC' or 'NCHW' data formats)
and a filter tensor of shape
[filter_height, filter_width, in_channels, channel_multiplier]
containing in_channels convolutional filters of depth 1, depthwise_conv2d
applies a different filter to each input channel (expanding from 1 channel
to channel_multiplier channels for each), then concatenates the results
together. The output has in_channels * channel_multiplier channels.
In detail, with the default NHWC format,
output[b, i, j, k * channel_multiplier + q] = sum_{di, dj}
filter[di, dj, k, q] * input[b, strides[1] * i + rate[0] * di,
strides[2] * j + rate[1] * dj, k]
Must have strides[0] = strides[3] = 1. For the most common case of the
same horizontal and vertical strides, strides = [1, stride, stride, 1].
If any value in rate is greater than 1, we perform atrous depthwise
convolution, in which case all values in the strides tensor must be equal
to 1.
x = np.array([[1., 2.],[3., 4.],[5., 6.]], dtype=np.float32).reshape((1, 3, 2, 1))kernel = np.array([[1., 2.],[3., 4]], dtype=np.float32).reshape((2, 1, 1, 2))tf.compat.v1.nn.depthwise_conv2d(x, kernel, strides=[1, 1, 1, 1],padding='VALID').numpy()array([[[[10., 14.],[14., 20.]],[[18., 26.],[22., 32.]]]], dtype=float32)
tf.compat.v1.nn.depthwise_conv2d(x, kernel, strides=[1, 1, 1, 1],padding=[[0, 0], [1, 0], [1, 0], [0, 0]]).numpy()array([[[[ 0., 0.],[ 3., 4.],[ 6., 8.]],[[ 0., 0.],[10., 14.],[14., 20.]],[[ 0., 0.],[18., 26.],[22., 32.]]]], dtype=float32)
input
data_format.
filter
[filter_height, filter_width, in_channels, channel_multiplier].
strides
input.
padding
"SAME" or "VALID" indicating the type of padding
algorithm to use, or a list indicating the explicit paddings at the start
and end of each dimension. When explicit padding is used and data_format
is "NHWC", this should be in the form [[0, 0], [pad_top, pad_bottom],
[pad_left, pad_right], [0, 0]]. When explicit padding used and
data_format is "NCHW", this should be in the form [[0, 0], [0, 0],
[pad_top, pad_bottom], [pad_left, pad_right]].
rate
height and width dimensions in atrous convolution. If it is
greater than 1, then all values of strides must be 1.
name
data_format
dilations
Tensor with shape according to data_format. E.g., for
"NHWC" format, shape is
[batch, out_height, out_width, in_channels * channel_multiplier].
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. Some content is licensed under the numpy license.
Last updated 2024-04-26 UTC.