class
LazyConv3d
extends
Conv3dLazyConv3d(out_channels: int, kernel_size: _Size3d, stride: _Size3d = 1, padding: _Size3d | str = 0, dilation: _Size3d = 1, groups: int = 1, bias: bool = True, padding_mode: PaddingMode = 'zeros', device: DeviceLike = None, dtype: DTypeLike = None)A Conv3d that infers in_channels from the first input.
Lazy initialization for 3D convolution: in_channels need not be
specified at construction time. Weight allocation and Kaiming
uniform initialization are deferred until the first forward
call (or state_dict load), at which point C_in is read from
x.shape[1].
Parameters
out_channelsintNumber of output channels.
kernel_sizeint or tuple[int, int, int]Size of the 3D convolving kernel.
strideint or tuple[int, int, int]= 1Stride of the convolution. Default:
1.paddingint, tuple[int, int, int], or str= 0Zero-padding or
"same" / "valid" string specifier.
Default: 0.dilationint or tuple[int, int, int]= 1Spacing between kernel elements. Default:
1.groupsint= 1Number of blocked connections. Default:
1.biasbool= TrueIf
True, a learnable bias is added after materialization.
Default: True.padding_modestr= 'zeros'"zeros", "reflect", "replicate", or "circular".
Default: "zeros".deviceDeviceLike= NoneDevice used when allocating weights. Default:
None.dtypeDTypeLike= NoneData type used when allocating weights. Default:
None.Attributes
Notes
Input:
— is
inferred automatically.
Output:
—
same formula as Conv3d.
State-dict materialization. A 5-D weight tensor in the
state_dict triggers materialization before parameter copying.
Examples
Lazy 3D conv in a volumetric network:
>>> import lucid
>>> import lucid.nn as nn
>>> lazy3d = nn.LazyConv3d(out_channels=32, kernel_size=3, padding=1)
>>> x = lucid.zeros(2, 4, 16, 32, 32) # in_channels=4 inferred
>>> y = lazy3d(x)
>>> y.shape
(2, 32, 16, 32, 32)
Verify materialization:
>>> import lucid
>>> import lucid.nn as nn
>>> lazy3d = nn.LazyConv3d(out_channels=16, kernel_size=3, padding=1)
>>> print(lazy3d.in_channels)
None
>>> _ = lazy3d(lucid.zeros(1, 8, 4, 4, 4))
>>> print(lazy3d.in_channels)
8Used by 1
Constructors
1dunder
__init__
→None__init__(out_channels: int, kernel_size: _Size3d, stride: _Size3d = 1, padding: _Size3d | str = 0, dilation: _Size3d = 1, groups: int = 1, bias: bool = True, padding_mode: PaddingMode = 'zeros', device: DeviceLike = None, dtype: DTypeLike = None)Initialise the LazyConv3d module. See the class docstring for parameter semantics.
Instance methods
2Return a string representation of the layer's configuration.