kernel
  * **stride** (*int** or **tuple**, **optional*) -- Stride of the
    convolution. Default: 1

  * **padding** (*int**, **tuple** or **str**, **optional*) --
    Padding added to all four sides of the input. Default: 0

  * **padding_mode** (*str**, **optional*) -- "'zeros'",
    "'reflect'", "'replicate'" or "'circular'". Default: "'zeros'"

  * **dilation** (*int** or **tuple**, **optional*) -- Spacing
    between kernel elements. Default: 1

  * **groups** (*int**, **optional*) -- Number of blocked
    connections from input channels to output channels. Default: 1

  * **bias** (*bool**, **optional*) -- If "True", adds a learnable
    bias to the output. Default: "True"

Shape:
      * Input: (N, C_{in}, H_{in}, W_{in}) or (C_{in}, H_{in}, W_{in})
  * Output: (N, C_{out}, H_{out}, W_{out}) or (C_{out}, H_{out},
    W_{out}), where

       H_{out} = \left\lfloor\frac{H_{in}  + 2 \times
