Python module
conv
The conv
module provides classes for performing convolution operations in
various dimensions (1D, 2D, and 3D) on tensor inputs. These convolution
operations are core building blocks for neural networks, especially in computer
vision and sequence processing tasks.
Here’s an example demonstrating how to use a 1D convolution:
import max.nn as nn
from max.graph import Graph, ops, Weight
from max.dtype import DType
import numpy as np
with Graph(name="conv_example") as graph:
# Define dimensions
batch_size = 2
seq_length = 10
in_channels = 16
out_channels = 32
kernel_size = 3
# Create input tensor [batch_size, sequence_length, channels]
x_data = np.zeros((batch_size, seq_length, in_channels), dtype=np.float32)
x = ops.constant(x_data, dtype=DType.float32)
# Create weights for convolution
filter_1d = Weight(
name="filter_weight",
dtype=DType.float32,
shape=[kernel_size, in_channels, out_channels]
)
bias_1d = Weight(
name="bias_weight",
dtype=DType.float32,
shape=[out_channels]
)
# Create and apply Conv1D layer
conv1d = nn.Conv1D(
filter=filter_1d,
bias=bias_1d,
stride=1,
padding=1
)
output_1d = conv1d(x)
print(f"Conv1D output shape: {output_1d.shape}")
# Output: Conv1D output shape: [Dim(2), Dim(10), Dim(32)]
import max.nn as nn
from max.graph import Graph, ops, Weight
from max.dtype import DType
import numpy as np
with Graph(name="conv_example") as graph:
# Define dimensions
batch_size = 2
seq_length = 10
in_channels = 16
out_channels = 32
kernel_size = 3
# Create input tensor [batch_size, sequence_length, channels]
x_data = np.zeros((batch_size, seq_length, in_channels), dtype=np.float32)
x = ops.constant(x_data, dtype=DType.float32)
# Create weights for convolution
filter_1d = Weight(
name="filter_weight",
dtype=DType.float32,
shape=[kernel_size, in_channels, out_channels]
)
bias_1d = Weight(
name="bias_weight",
dtype=DType.float32,
shape=[out_channels]
)
# Create and apply Conv1D layer
conv1d = nn.Conv1D(
filter=filter_1d,
bias=bias_1d,
stride=1,
padding=1
)
output_1d = conv1d(x)
print(f"Conv1D output shape: {output_1d.shape}")
# Output: Conv1D output shape: [Dim(2), Dim(10), Dim(32)]
Conv1D
class max.nn.conv.Conv1D(filter: Value | BufferValue | TensorValue | Shape | Dim | int | float | integer | floating | ndarray, bias: Value | BufferValue | TensorValue | Shape | Dim | int | float | integer | floating | ndarray | None = None, stride: int = 1, padding: int = 0, dilation: int = 1, groups: int = 1)
A 1D convolution over an input signal composed of several input planes.
Example
conv = nn.Conv1D(
filter=filter_1d,
bias=bias_1d,
stride=1,
padding=1
)
conv = nn.Conv1D(
filter=filter_1d,
bias=bias_1d,
stride=1,
padding=1
)
bias
bias*: Value | BufferValue | TensorValue | Shape | Dim | int | float | integer | floating | ndarray | None* = None
dilation
dilation*: int* = 1
filter
filter*: Value | BufferValue | TensorValue | Shape | Dim | int | float | integer | floating | ndarray*
groups
groups*: int* = 1
padding
padding*: int* = 0
stride
stride*: int* = 1
Conv2D
class max.nn.conv.Conv2D(filter: Value | BufferValue | TensorValue | Shape | Dim | int | float | integer | floating | ndarray, bias: Value | BufferValue | TensorValue | Shape | Dim | int | float | integer | floating | ndarray | None = None, stride: int | Tuple[int, int] = (1, 1), padding: int | Tuple[int, int, int, int] = (0, 0, 0, 0), dilation: int | Tuple[int, int] = (1, 1), groups: int = 1)
A 2D convolution over an input signal composed of several input planes.
Example
conv = nn.Conv2D(
filter=filter_2d,
bias=bias_2d,
stride=2,
padding=1
)
output = conv(x)
conv = nn.Conv2D(
filter=filter_2d,
bias=bias_2d,
stride=2,
padding=1
)
output = conv(x)
bias
bias*: Value | BufferValue | TensorValue | Shape | Dim | int | float | integer | floating | ndarray | None* = None
dilation
filter
filter*: Value | BufferValue | TensorValue | Shape | Dim | int | float | integer | floating | ndarray*
groups
groups*: int* = 1
padding
stride
Conv3D
class max.nn.conv.Conv3D(filter: Value | BufferValue | TensorValue | Shape | Dim | int | float | integer | floating | ndarray, bias: Value | BufferValue | TensorValue | Shape | Dim | int | float | integer | floating | ndarray | None = None, stride: int | Tuple[int, int, int] = (1, 1, 1), padding: int | Tuple[int, int, int, int, int, int] = (0, 0, 0, 0, 0, 0), dilation: int | Tuple[int, int, int] = (1, 1, 1), groups: int = 1)
A 3D convolution over an input signal composed of several input planes.
Example
conv = nn.Conv3D(
filter=filter_3d,
bias=bias_3d,
stride=1,
padding=1
)
conv = nn.Conv3D(
filter=filter_3d,
bias=bias_3d,
stride=1,
padding=1
)
bias
bias*: Value | BufferValue | TensorValue | Shape | Dim | int | float | integer | floating | ndarray | None* = None
dilation
filter
filter*: Value | BufferValue | TensorValue | Shape | Dim | int | float | integer | floating | ndarray*
groups
groups*: int* = 1
padding
padding*: int | Tuple[int, int, int, int, int, int]* = (0, 0, 0, 0, 0, 0)
stride
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!