factory
factory
¶
Normalization layers factory method.
create_normalization_layer
¶
create_normalization_layer(normalization_type, dimension, epsilon=1e-06, conditioning_dimension=None)
Create a normalization layer, optionally wrapped with adaptive conditioning.
When conditioning_dimension is provided, returns an AdaNorm that wraps the base
normalization with a learned modulation. Otherwise returns a plain norm.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
normalization_type
|
str
|
Base normalization type (use NormalizationType enum values). |
required |
dimension
|
int
|
Feature dimension. |
required |
epsilon
|
float
|
Small constant for numerical stability. |
1e-06
|
conditioning_dimension
|
int | None
|
Conditioning dimension. When set, wraps the base norm in AdaNorm for adaptive modulation. |
None
|
Returns:
| Type | Description |
|---|---|
Module
|
Plain normalization layer or AdaNorm. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If normalization_type is not supported. |
Source code in src/versatil/models/layers/normalization/factory.py
create_block_normalization
¶
create_block_normalization(normalization_type, dimension, epsilon=1e-06, conditioning_dimension=None, use_gating=False, init_strategy='zero')
Create normalization for transformer blocks: (x, condition) -> (normed, gate).
When conditioning_dimension is provided, returns an AdaNorm with learned
modulation (and optional gating for AdaLN-Zero). Otherwise returns
an UnconditionedNorm that wraps a plain normalization layer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
normalization_type
|
str
|
Base normalization type (use NormalizationType enum values). |
required |
dimension
|
int
|
Feature dimension. |
required |
epsilon
|
float
|
Small constant for numerical stability. |
1e-06
|
conditioning_dimension
|
int | None
|
Conditioning dimension. When set, creates AdaNorm. |
None
|
use_gating
|
bool
|
Whether to produce a learned gate (AdaLN-Zero). Only applies when conditioning_dimension is set. |
False
|
init_strategy
|
Literal['zero', 'xavier']
|
Initialization strategy for modulation weights. |
'zero'
|
Returns:
| Type | Description |
|---|---|
BlockNormalization
|
AdaNorm when conditioned, UnconditionedNorm when not. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If normalization_type is not supported. |