"""
Defines configuration templates for learning rate schedulers.
Classes:
- BaseSchedulerTemplate(ITemplate): Base template for scheduler configuration.
- NoamSchedulerTemp(BaseSchedulerTemplate): Template for Noam learning rate scheduler.
- SqueezeformerNoamSchedulerTemp(BaseSchedulerTemplate): Template for modified Noam scheduler used in Squeezeformer models.
"""
from dataclasses import asdict, dataclass
from numbers import Number
from speeq.constants import SCHEDULER_TYPE_KEY
from speeq.interfaces import ITemplate
[docs]class BaseSchedulerTemplate(ITemplate):
[docs] def get_dict(self) -> dict:
return asdict(self)
@property
def name(self):
return self._name
@property
def type(self):
return SCHEDULER_TYPE_KEY
[docs]@dataclass
class NoamSchedulerTemp(BaseSchedulerTemplate):
"""Noam scheduler template
Args:
warmup_staps (int): The warmup steps.
d_model (int): The model dimension.
"""
warmup_staps: int
d_model: int
_name = "noam"