Encoding Presets¶
- class Preset[source]¶
Dummy parent (abstract) class of all encoder presets. An actual preset should inherit from this class.
Encoding preset defines how we encode each frame. They are similar to conventional codecs presets e.g x264
--slow
preset offers better compression performance at the expense of a longer encoding.Here a preset defines two things: how the warm-up is done, and how the subsequent training is done.
- Parameters:
preset_name (
str
) – Name of the preset.all_phases (
List[TrainerPhase]
) – The successive (post warm-up) training phase. Defaults to[]
.warmup (
Warmup
) – The warm-up parameters. Defaults toWarmup()
.
- class Warmup[source]¶
A warm-up is composed of different phases where the worse candidates are successively eliminated.
- Parameters:
phase (
List[WarmupPhase]
) – The successive phases of the Warmup. Defaults to[]
.
- class WarmupPhase[source]¶
Describe one phase of the warm-up. At the beginning of each warm-up phase, we start by keeping the best
candidates
systems. We then perform a short training, and we go to the next phase.- Parameters:
candidates (
int
) – How many candidates are kept at the beginning of the phase.training_phase (
TrainerPhase
) – Describe how the candidates are trained.
- class TrainerPhase[source]¶
Dataclass representing one phase of an encoding preset.
- Parameters:
lr (
float
) – Initial learning rate of the phase. Can vary ifschedule_lr
is True. Defaults to 0.01.max_itr (
int
) – Maximum number of iterations for the phase. The actual number of iterations can be made smaller through the patience mechanism. Defaults to 10000.freq_valid – Check (and print) the performance each
frequency_validation
iterations. This drives the patience mechanism. Defaults to 100.patience – After
patience
iterations without any improvement to the results, exit the training. Patience is disabled by settingpatience = max_iterations
. If patience is used alongside cosine_scheduling_lr, then it does not end the training. Instead, we simply reload the best model so far once we reach the patience, and the training continue. Defaults to 1000.quantize_model (
bool
) – IfTrue
, quantize the neural networks parameters at the end of the training phase. Defaults toFalse
.schedule_lr (
bool
) – IfTrue
, the learning rate is no longer constant. instead, it varies with a cosine scheduling, as suggested in C3: High-performance and low-complexity neural compression from a single image or video, Kim et al.. Defaults to False.softround_temperature (
Tuple[float, float]
) – the softround function. It is used in the forward / backward ifquantizer_type
is set to"softround"
or"softround_alone"
. It is also used in the backward pass ifquantizer_type
is set to"ste"
. The softround temperature is linearly scheduled during the training. At iteration n° 0 it is equal tosoftround_temperature[0]
while at iteration n°max_itr
it is equal tosoftround_temperature[1]
. Note that the patience might interrupt the training before it reaches this last value. Defaults to (0.3, 0.3).noise_parameter (
Tuple[float, float]
) – The random noise temperature is linearly scheduled during the training. At iteration n° 0 it is equal tonoise_parameter[0]
while at iteration n°max_itr
it is equal tonoise_parameter[1]
. Note that the patience might interrupt the training before it reaches this last value. Defaults to (2.0, 1.0).quantizer_noise_type (
POSSIBLE_QUANTIZATION_NOISE_TYPE
) – The random noise used by the quantizer. More information available in encoder/component/core/quantizer.py. Defaults to"kumaraswamy"
.quantizer_type (
POSSIBLE_QUANTIZER_TYPE
) – What quantizer to use during training. See encoder/component/core/quantizer.py for more information. Defaults to"softround"
.optimized_module (
List[MODULE_TO_OPTIMIZE]
) – List of modules to be optimized. Most often you’d want to useoptimized_module = ['all']
. Defaults to['all']
.