HyperparametersMixin¶
- class lightning.pytorch.core.mixins.HyperparametersMixin[source]¶
Bases:
object
- save_hyperparameters(*args, ignore=None, frame=None, logger=True)[source]¶
Save arguments to
hparams
attribute.- Parameters:
args¶ (
Any
) – single object of dict, NameSpace or OmegaConf or string names or arguments from class__init__
ignore¶ (
Union
[Sequence
[str
],str
,None
]) – an argument name or a list of argument names from class__init__
to be ignoredframe¶ (
Optional
[FrameType
]) – a frame object. Default is Nonelogger¶ (
bool
) – Whether to send the hyperparameters to the logger. Default: True
- Return type:
- Example::
>>> from lightning.pytorch.core.mixins import HyperparametersMixin >>> class ManuallyArgsModel(HyperparametersMixin): ... def __init__(self, arg1, arg2, arg3): ... super().__init__() ... # manually assign arguments ... self.save_hyperparameters('arg1', 'arg3') ... def forward(self, *args, **kwargs): ... ... >>> model = ManuallyArgsModel(1, 'abc', 3.14) >>> model.hparams "arg1": 1 "arg3": 3.14
>>> from lightning.pytorch.core.mixins import HyperparametersMixin >>> class AutomaticArgsModel(HyperparametersMixin): ... def __init__(self, arg1, arg2, arg3): ... super().__init__() ... # equivalent automatic ... self.save_hyperparameters() ... def forward(self, *args, **kwargs): ... ... >>> model = AutomaticArgsModel(1, 'abc', 3.14) >>> model.hparams "arg1": 1 "arg2": abc "arg3": 3.14
>>> from lightning.pytorch.core.mixins import HyperparametersMixin >>> class SingleArgModel(HyperparametersMixin): ... def __init__(self, params): ... super().__init__() ... # manually assign single argument ... self.save_hyperparameters(params) ... def forward(self, *args, **kwargs): ... ... >>> model = SingleArgModel(Namespace(p1=1, p2='abc', p3=3.14)) >>> model.hparams "p1": 1 "p2": abc "p3": 3.14
>>> from lightning.pytorch.core.mixins import HyperparametersMixin >>> class ManuallyArgsModel(HyperparametersMixin): ... def __init__(self, arg1, arg2, arg3): ... super().__init__() ... # pass argument(s) to ignore as a string or in a list ... self.save_hyperparameters(ignore='arg2') ... def forward(self, *args, **kwargs): ... ... >>> model = ManuallyArgsModel(1, 'abc', 3.14) >>> model.hparams "arg1": 1 "arg3": 3.14
- property hparams: Union[AttributeDict, MutableMapping]¶
The collection of hyperparameters saved with
save_hyperparameters()
. It is mutable by the user. For the frozen set of initial hyperparameters, usehparams_initial
.- Returns:
Mutable hyperparameters dictionary
- property hparams_initial: AttributeDict¶
The collection of hyperparameters saved with
save_hyperparameters()
. These contents are read-only. Manual updates to the saved hyperparameters can instead be performed throughhparams
.- Returns:
immutable initial hyperparameters
- Return type: