Rate this Page

torch.nn.functional.conv2d#

torch.nn.functional.conv2d(input,weight,bias=None,stride=1,padding=0,dilation=1,groups=1)Tensor#

Applies a 2D convolution over an input image composed of several inputplanes.

This operator supportsTensorFloat32.

SeeConv2d for details and output shape.

Note

In some circumstances when given tensors on a CUDA device and using CuDNN, this operator may select a nondeterministic algorithm to increase performance. If this is undesirable, you can try to make the operation deterministic (potentially at a performance cost) by settingtorch.backends.cudnn.deterministic=True. SeeReproducibility for more information.

Note

This operator supports complex data types i.e.complex32,complex64,complex128.

Parameters
  • input – input tensor of shape(minibatch,in_channels,iH,iW)(\text{minibatch} , \text{in\_channels} , iH , iW)

  • weight – filters of shape(out_channels,in_channelsgroups,kH,kW)(\text{out\_channels} , \frac{\text{in\_channels}}{\text{groups}} , kH , kW)

  • bias – optional bias tensor of shape(out_channels)(\text{out\_channels}). Default:None

  • stride – the stride of the convolving kernel. Can be a single number or atuple(sH, sW). Default: 1

  • padding

    implicit paddings on both sides of the input. Can be a string {‘valid’, ‘same’},single number or a tuple(padH, padW). Default: 0padding='valid' is the same as no padding.padding='same' padsthe input so the output has the same shape as the input. However, this modedoesn’t support any stride values other than 1.

    Warning

    Forpadding='same', if theweight is even-length anddilation is odd in any dimension, a fullpad() operationmay be needed internally. Lowering performance.

  • dilation – the spacing between kernel elements. Can be a single number ora tuple(dH, dW). Default: 1

  • groups – split input into groups, bothin_channels\text{in\_channels} andout_channels\text{out\_channels}should be divisible by the number of groups. Default: 1

Examples:

>>># With square kernels and equal stride>>>filters=torch.randn(8,4,3,3)>>>inputs=torch.randn(1,4,5,5)>>>F.conv2d(inputs,filters,padding=1)