# mlx.nn.Conv2d — MLX 0.0.7 documentation

Skip to main content
`Ctrl`+`K`

# mlx.nn.Conv2d

class mlx.nn.Conv2d(in_channels: int, out_channels: int, kernel_size: Union [ int , tuple ], stride: Union [ int , tuple ] = 1, padding: Union [ int , tuple ] = 0, bias: bool = True)

  Applies a 2-dimensional convolution over the multi-channel input image.

  The channels are expected to be last i.e. the input shape should be `NHWC` where:

    - `N` is the batch dimension

    - `H` is the input image height

    - `W` is the input image width

    - `C` is the number of input channels

  Parameters:

    - in_channels (int) – The number of input channels.

    - out_channels (int) – The number of output channels.

    - kernel_size (int or tuple) – The size of the convolution filters.

    - stride (int or tuple , optional) – The size of the stride when applying the filter. Default: 1.

    - padding (int or tuple , optional) – How many positions to 0-pad the input with. Default: 0.

    - bias (bool , optional) – If `True` add a learnable bias to the output. Default: `True`