# convolution¶

dragon.vm.tensorflow.nn.convolution(
input,
filters,
strides=1,
data_format='NHWC',
dilations=1,
name=None,
**kwargs
)[source]

Apply the n-dimension convolution.

• If data_format is 'NCHW', excepts input shape $$(N, C_{\text{in}}, D1, D2, ...)$$, filters shape $$(C_{\text{out}}, C_{\text{in}}, D1_{\text{f}}, D2_{\text{f}}, ...)$$, and output shape is $$(N, C_{\text{out}}, D1_{\text{out}}, D2_{\text{out}}, ...)$$.
• If data_format is 'NHWC', excepts input shape $$(N, D1, D2, ..., C_{\text{in}})$$, filters shape $$(C_{\text{out}}, D1_{\text{f}}, D2_{\text{f}}, ..., C_{\text{in}})$$, and output shape is $$(N, D1_{\text{out}}, D2_{\text{out}}, ..., C_{\text{out}})$$.
• padding could be 'VALID', 'SAME' or explicit padding size.

Examples:

for i in range(3):
ndim = i + 1
x = tf.ones((1,) + (2,) * ndim + (2,))
filters = tf.ones((3,) + (1,) * ndim + (2,))
y = tf.nn.convolution(x, filters)
assert y.shape == (1,) + (2,) * ndim + (3,)

Parameters:
• input (dragon.Tensor) – The input tensor.
• filters (dragon.Tensor) – The filters tensor.
• strides (Union[int, Sequence[int]], optional, default=1) – The stride of convolution window.
• padding (Union[int, Sequence[int], str], optional, default='VALID') – The padding algorithm or size.
• data_format (str, optional, default='NHWC') – 'NCHW' or 'NHWC'.
• dilations (Union[int, Sequence[int]], optional, default=1) – The rate of dilated filters.
• name (str, optional) – The operation name.
Returns:

dragon.Tensor – The output tensor.