Applies a 3D convolution over the input volume.
Usage
mlx_conv3d(
input,
weight,
stride = c(1L, 1L, 1L),
padding = c(0L, 0L, 0L),
dilation = c(1L, 1L, 1L),
groups = 1L,
device = mlx_default_device()
)Arguments
- input
Input mlx array. Shape depends on dimensionality (see individual functions).
- weight
Weight array. Shape depends on dimensionality (see individual functions).
- stride
Stride of the convolution. Can be a scalar or vector (length depends on dimensionality). Default: 1 for 1D, c(1,1) for 2D, c(1,1,1) for 3D.
- padding
Amount of zero padding. Can be a scalar or vector (length depends on dimensionality). Default: 0 for 1D, c(0,0) for 2D, c(0,0,0) for 3D.
- dilation
Spacing between kernel elements. Can be a scalar or vector (length depends on dimensionality). Default: 1 for 1D, c(1,1) for 2D, c(1,1,1) for 3D.
- groups
Number of blocked connections from input to output channels. Default: 1.
- device
Execution target: supply
"gpu","cpu", or anmlx_streamcreated viamlx_new_stream(). Defaults to the currentmlx_default_device()unless noted otherwise (helpers that act on an existing array typically reuse that array's device or stream).
Details
Input has shape (N, D, H, W, C_in) where N is batch size, D, H, W are depth,
height and width, and C_in is number of input channels. Weight has shape
(C_out, kernel_d, kernel_h, kernel_w, C_in).