language.param
def param(default: typing.Any, help: str | None = None, name: str | None = None, choices: list[typing.Any] | None = None, validator: typing.Callable[[typing.Any], typing.Any] | None = None) -> typing.AnyDeclare a one-off ``laco app`` hyperparameter outside a ``@L.params`` block.
The return value is a :class:`LacoParam` at runtime; ``laco.load``
unwraps it to *default* in the resulting :class:`~omegaconf.DictConfig`.
Parameters
| Name | Type | Description |
|---|---|---|
| default | typing.Any | Default value (also determines the CLI flag type). |
| help = None | str | None | Short description shown in ``laco app <dist> <entry> --help``. |
| name = None | str | None | Custom CLI flag name. Defaults to the variable name. |
| choices = None | list[typing.Any] | None | Restrict valid values. Validated at parse time. |
| validator = None | typing.Callable[[typing.Any], typing.Any] | None | Callable (e.g. :class:`Range`, :class:`Choices`) applied after type conversion. Raises :class:`ValueError` on failure. |
Examples
::
seed = L.param(42, help="Random seed for reproducibility")
lr = L.param(1e-3, help="Learning rate", validator=L.Range(1e-6, 1.0))
opt = L.param("adam", choices=["adam", "sgd", "adamw"])Source: laco/language.py:1419