class
InstanceNorm1d
extends
_InstanceNormBaseInstanceNorm1d(num_features: int, eps: float = 1e-05, momentum: float = 0.1, affine: bool = False, track_running_stats: bool = False, device: DeviceLike = None, dtype: DTypeLike = None)Instance normalization for 3-D input (N, C, L).
Normalises each (n, c) slice over the length dimension
independently:
where and are the mean and variance of the elements in sample , channel .
This is useful for 1-D temporal or sequential data where the statistics should not be mixed across samples or channels.
Parameters
num_featuresintNumber of channels .
epsfloat= 1e-05Numerical stability constant. Default:
1e-5.momentumfloat= 0.1EMA factor used when
track_running_stats=True. Default: 0.1.affinebool= FalseIf
True, learns per-channel scale and shift. Default: False.track_running_statsbool= FalseIf
True, maintains running mean/variance buffers.
Default: False.deviceDeviceLike= NoneDevice for parameters/buffers. Default:
None.dtypeDTypeLike= NoneData type for parameters/buffers. Default:
None.Attributes
weightParameter or NonePer-channel scale , shape
(num_features,).
None when affine=False.biasParameter or NonePer-channel shift , shape
(num_features,).
None when affine=False.running_meanTensor or NoneRunning mean per channel, shape
(num_features,).
None when track_running_stats=False.running_varTensor or NoneRunning variance per channel, shape
(num_features,).
None when track_running_stats=False.Notes
- Input:
- Output: — same shape.
- With
affine=True, the learnedweightandbiascan be replaced at inference time by externally supplied style tensors, which is the core mechanism behind adaptive instance normalization (AdaIN) used in style transfer.
Examples
>>> import lucid
>>> import lucid.nn as nn
>>> norm = nn.InstanceNorm1d(32)
>>> x = lucid.randn(8, 32, 100) # (N, C, L)
>>> out = norm(x)
>>> out.shape
(8, 32, 100)
With learnable affine parameters:
>>> norm_affine = nn.InstanceNorm1d(32, affine=True)
>>> out2 = norm_affine(x)
>>> out2.shape
(8, 32, 100)