# lightning.training.optimizers { #aria_nbv.lightning.training.optimizers }`lightning.training.optimizers`Shared optimizer and learning-rate scheduler configuration for Lightning.:class:`AdamWConfig` serves both the one-step:class:`aria_nbv.lightning.VinLightningModule` and finite-horizon:class:`aria_nbv.lightning.finite_horizon.module.QhLightningModule`. Scheduler factoriesprovide the common Lightning mapping and step-budget contracts without owningeither objective. Each consuming module retains optimizer selection, steppingorder, and scheduler-admission policy; the Trainer owns the final one-cyclestep budget.## Classes| Name | Description || ---| ---||[AdamWConfig](#aria_nbv.lightning.training.optimizers.AdamWConfig)| Configure AdamW for a Lightning module's trainable parameters. ||[OneCycleSchedulerConfig](#aria_nbv.lightning.training.optimizers.OneCycleSchedulerConfig)| Configure a step-wise one-cycle learning-rate and momentum schedule. ||[ReduceLrOnPlateauConfig](#aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig)| Configure metric-driven learning-rate decay for Lightning. |### AdamWConfig { #aria_nbv.lightning.training.optimizers.AdamWConfig }```pythonlightning.training.optimizers.AdamWConfig()```Configure AdamW for a Lightning module's trainable parameters.#### Attributes| Name | Description || ---| ---||[target_type](#aria_nbv.lightning.training.optimizers.AdamWConfig.target_type)| Factory target for `aria_nbv.configs.base.BaseConfig.setup_target`. ||[learning_rate](#aria_nbv.lightning.training.optimizers.AdamWConfig.learning_rate)| Learning rate for AdamW. ||[weight_decay](#aria_nbv.lightning.training.optimizers.AdamWConfig.weight_decay)| Weight decay for AdamW. ||[foreach](#aria_nbv.lightning.training.optimizers.AdamWConfig.foreach)| Explicit foreach policy; ``None`` preserves PyTorch's historical backend selection. ||[fused](#aria_nbv.lightning.training.optimizers.AdamWConfig.fused)| Explicit fused policy; ``None`` preserves PyTorch's historical backend selection. |#### Methods| Name | Description || ---| ---||[setup_target](#aria_nbv.lightning.training.optimizers.AdamWConfig.setup_target)| Create AdamW over the exact trainable parameter list. |##### setup_target { #aria_nbv.lightning.training.optimizers.AdamWConfig.setup_target }```pythonlightning.training.optimizers.AdamWConfig.setup_target(params)```Create AdamW over the exact trainable parameter list.###### Parameters {.doc-section .doc-section-parameters}| Name | Type | Description | Default ||--------|--------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|| params |[list](`list`)\[[Tensor](`torch.Tensor`)\]| Materialized parameters selected by the consuming :meth:`aria_nbv.lightning.VinLightningModule.configure_optimizers` or :meth:`aria_nbv.lightning.finite_horizon.module.QhLightningModule.configure_optimizers`. | _required_ |###### Returns {.doc-section .doc-section-returns}| Name | Type | Description ||--------|--------------------------------------|-------------------------------------------|||[Optimizer](`torch.optim.Optimizer`)| Optimizer owned and stepped by Lightning. |### OneCycleSchedulerConfig { #aria_nbv.lightning.training.optimizers.OneCycleSchedulerConfig }```pythonlightning.training.optimizers.OneCycleSchedulerConfig()```Configure a step-wise one-cycle learning-rate and momentum schedule.#### Attributes| Name | Description || ---| ---||[target_type](#aria_nbv.lightning.training.optimizers.OneCycleSchedulerConfig.target_type)| Return the external one-cycle scheduler factory target. ||[max_lr](#aria_nbv.lightning.training.optimizers.OneCycleSchedulerConfig.max_lr)| Maximum learning rate in the cycle (defaults to optimizer LR). ||[base_momentum](#aria_nbv.lightning.training.optimizers.OneCycleSchedulerConfig.base_momentum)| Lower momentum boundary in the cycle. ||[max_momentum](#aria_nbv.lightning.training.optimizers.OneCycleSchedulerConfig.max_momentum)| Upper momentum boundary in the cycle. ||[div_factor](#aria_nbv.lightning.training.optimizers.OneCycleSchedulerConfig.div_factor)| Initial learning rate = max_lr / div_factor. ||[final_div_factor](#aria_nbv.lightning.training.optimizers.OneCycleSchedulerConfig.final_div_factor)| Final learning rate = max_lr / (div_factor * final_div_factor). ||[pct_start](#aria_nbv.lightning.training.optimizers.OneCycleSchedulerConfig.pct_start)| Percentage of cycle spent increasing learning rate. ||[anneal_strategy](#aria_nbv.lightning.training.optimizers.OneCycleSchedulerConfig.anneal_strategy)| Annealing strategy: 'cos' or 'linear'. |#### Methods| Name | Description || ---| ---||[setup_target](#aria_nbv.lightning.training.optimizers.OneCycleSchedulerConfig.setup_target)| Create a one-cycle scheduler after resolving the total step budget. ||[setup_lightning](#aria_nbv.lightning.training.optimizers.OneCycleSchedulerConfig.setup_lightning)| Build the Lightning lr_scheduler config for OneCycleLR. |##### setup_target { #aria_nbv.lightning.training.optimizers.OneCycleSchedulerConfig.setup_target }```pythonlightning.training.optimizers.OneCycleSchedulerConfig.setup_target( optimizer,*, total_steps=None, trainer=None,)```Create a one-cycle scheduler after resolving the total step budget.###### Parameters {.doc-section .doc-section-parameters}| Name | Type | Description | Default ||-------------|--------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|------------|| optimizer |[Optimizer](`torch.optim.Optimizer`)| Optimizer whose learning rate and momentum are scheduled. | _required_ || total_steps |[int](`int`)\| None | Explicit positive optimizer-step count. When omitted, `trainer.estimated_stepping_batches` or its datamodule/epoch fallback is used. |`None`|| trainer |[pl](`pytorch_lightning`).[Trainer](`pytorch_lightning.Trainer`)\| None | Optional configured trainer used for step-budget inference. |`None`|###### Returns {.doc-section .doc-section-returns}| Name | Type | Description ||--------|-----------------------------------------------------|-----------------------------------------|||[OneCycleLR](`torch.optim.lr_scheduler.OneCycleLR`)| Step-wise scheduler owned by Lightning. |##### setup_lightning { #aria_nbv.lightning.training.optimizers.OneCycleSchedulerConfig.setup_lightning }```pythonlightning.training.optimizers.OneCycleSchedulerConfig.setup_lightning( optimizer,*, total_steps=None, trainer=None,)```Build the Lightning lr_scheduler config for OneCycleLR.###### Parameters {.doc-section .doc-section-parameters}| Name | Type | Description | Default ||-------------|--------------------------------------------------------------------------|-------------------------------------------------------|------------|| optimizer |[Optimizer](`torch.optim.Optimizer`)| Optimizer instance to schedule. | _required_ || total_steps |[int](`int`)\| None | Optional total step count for the cycle. |`None`|| trainer |[pl](`pytorch_lightning`).[Trainer](`pytorch_lightning.Trainer`)\| None | Optional Lightning trainer used to infer total_steps. |`None`|###### Returns {.doc-section .doc-section-returns}| Name | Type | Description ||--------|-----------------------------------------------------|--------------------------------------------------|||[dict](`dict`)\[[str](`str`), [Any](`typing.Any`)\]| Lightning lr_scheduler configuration dictionary. |### ReduceLrOnPlateauConfig { #aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig }```pythonlightning.training.optimizers.ReduceLrOnPlateauConfig()```Configure metric-driven learning-rate decay for Lightning.#### Attributes| Name | Description || ---| ---||[target_type](#aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig.target_type)| Factory target for `aria_nbv.configs.base.BaseConfig.setup_target`. ||[mode](#aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig.mode)| Whether to reduce on metric min or max. ||[factor](#aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig.factor)| Multiplicative factor of LR reduction. ||[patience](#aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig.patience)| Number of steps with no improvement before reducing the LR. ||[threshold](#aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig.threshold)| Threshold for measuring new optimum. ||[threshold_mode](#aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig.threshold_mode)| Threshold interpretation (relative or absolute). ||[cooldown](#aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig.cooldown)| Number of epochs to wait before resuming normal operation. ||[min_lr](#aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig.min_lr)| Lower bound on the learning rate. ||[eps](#aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig.eps)| Minimal decay applied to LR. ||[monitor](#aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig.monitor)| Metric name to monitor for plateau reduction. ||[interval](#aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig.interval)| Scheduler interval (step or epoch). ||[frequency](#aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig.frequency)| Scheduler frequency. |#### Methods| Name | Description || ---| ---||[setup_target](#aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig.setup_target)| Create a plateau scheduler over one optimizer. ||[setup_lightning](#aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig.setup_lightning)| Build the Lightning lr_scheduler config for ReduceLROnPlateau. |##### setup_target { #aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig.setup_target }```pythonlightning.training.optimizers.ReduceLrOnPlateauConfig.setup_target( optimizer,*, trainer=None,)```Create a plateau scheduler over one optimizer.###### Parameters {.doc-section .doc-section-parameters}| Name | Type | Description | Default ||-----------|--------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|------------|| optimizer |[Optimizer](`torch.optim.Optimizer`)| Optimizer whose parameter-group rates are mutated. | _required_ || trainer |[pl](`pytorch_lightning`).[Trainer](`pytorch_lightning.Trainer`)\| None | Accepted for the shared scheduler factory interface; not used because plateau scheduling is metric driven. |`None`|###### Returns {.doc-section .doc-section-returns}| Name | Type | Description ||--------|-------------------------------------------------------------------|------------------------------------------------|||[ReduceLROnPlateau](`torch.optim.lr_scheduler.ReduceLROnPlateau`)| Scheduler instance later stepped by Lightning. |##### setup_lightning { #aria_nbv.lightning.training.optimizers.ReduceLrOnPlateauConfig.setup_lightning }```pythonlightning.training.optimizers.ReduceLrOnPlateauConfig.setup_lightning( optimizer,*, trainer=None,)```Build the Lightning lr_scheduler config for ReduceLROnPlateau.###### Parameters {.doc-section .doc-section-parameters}| Name | Type | Description | Default ||-----------|--------------------------------------------------------------------------|--------------------------------------------------|------------|| optimizer |[Optimizer](`torch.optim.Optimizer`)| Optimizer instance to schedule. | _required_ || trainer |[pl](`pytorch_lightning`).[Trainer](`pytorch_lightning.Trainer`)\| None | Optional Lightning trainer (unused for plateau). |`None`|###### Returns {.doc-section .doc-section-returns}| Name | Type | Description ||--------|-----------------------------------------------------|--------------------------------------------------|||[dict](`dict`)\[[str](`str`), [Any](`typing.Any`)\]| Lightning lr_scheduler configuration dictionary. |