Python class
Conv3D
Conv3D
class max.nn.Conv3D(depth, height, width, in_channels, out_channels, dtype, stride=1, padding=0, dilation=1, num_groups=1, device=None, has_bias=False, permute=False, name=None)
Bases: Module
A 3D convolution over an input signal composed of several input planes.
When called, Conv3D accepts a TensorValue of shape
(batch, depth, height, width, in_channels) and returns a
TensorValue of shape (batch, new_depth, new_height, new_width, out_channels). If permute=True, the input and output
follow PyTorch channel-first layout: (batch, in_channels, depth, height, width) and (batch, out_channels, new_depth, new_height, new_width).
conv = nn.Conv3D(
depth=3,
height=3,
width=3,
in_channels=64,
out_channels=128,
dtype=DType.float32,
stride=1,
padding=0,
has_bias=False,
name="conv3d_weight",
device=DeviceRef.GPU(),
)Initializes the Conv3D layer with weights and optional bias.
-
Parameters:
-
- depth (int) – Depth dimension of the convolution kernel (kernel_size[0]).
- height (int) – Height dimension of the convolution kernel (kernel_size[1]).
- width (int) – Width dimension of the convolution kernel (kernel_size[2]).
- in_channels (int) – Number of channels in the input image.
- out_channels (int) – Number of channels produced by the convolution.
- dtype (DType) – The data type for both weights and bias.
- stride (tuple[int, int, int]) – Stride of the convolution for depth, height, and width dimensions. Can be int (applied to all dimensions) or tuple of 3 ints. Default: 1
- padding (tuple[int, int, int, int, int, int]) – Padding added to the input in order: (pad_front, pad_back, pad_top, pad_bottom, pad_left, pad_right). Can be int (applied to all sides), tuple of 3 ints (pad_d, pad_h, pad_w) expanded symmetrically, or tuple of 6 ints (fully asymmetric). Default: 0
- dilation (tuple[int, int, int]) – Spacing between kernel elements for depth, height, and width dimensions. Can be int (applied to all dimensions) or tuple of 3 ints. Default: 1
- num_groups (int) – Number of blocked connections from input channels to output channels. Input channels and output channels are divided into groups. Default: 1.
- device (DeviceRef | None) – The target device for computation. If None, defaults to CPU. Weights are initially stored on CPU and moved to target device during computation.
- name (str | None) – Base name for weights. If provided, weights are named
{name}.weightand{name}.bias(if bias is enabled). If None, uses “weight” and “bias”. - has_bias (bool) – If true, adds a learnable bias vector to the layer.
Defaults to
False. - permute (bool) – If true, permutes weights from PyTorch format to MAX format.
PyTorch order: (out_channels, in_channels / num_groups, depth, height, width).
MAX API order: (depth, height, width, in_channels / num_groups, out_channels).
Defaults to
False.
bias
The optional bias vector stored on CPU with shape (out_channels,).
Model init moves the bias to device if present.
device
The device where matrix operations are performed.
dilation
Controls the dilation rate for depth, height, and width dimensions.
filter
filter: Weight
The weight matrix stored on CPU with shape (depth, height, width, in_channels / num_groups, out_channels).
Model init moves the weight to device.
num_groups
num_groups: int
Number of blocked connections from input channels to output channels.
padding
Controls the amount of padding applied before and after the input for depth, height, and width dimensions.
Format: (pad_front, pad_back, pad_top, pad_bottom, pad_left, pad_right).
permute
permute: bool = False
bool controls whether self.filter is permuted from PyTorch order to max order. PyTorch order is: (out_channels, in_channels / num_groups, depth, height, width) Max API order: (depth, height, width, in_channels / num_groups, out_channels).
stride
Controls the stride for the cross-correlation.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!