Configs

Here is a tutorial on Google Colab that shows how to use the configs module

class labml.configs.BaseConfigs(*, _primary: Optional[str] = None)[source]

You should sub-class this class to create your own configurations

labml.configs.option(name: Union[any, List[any]])[source]
labml.configs.option(name: Union[any, List[any]], option_name: str)
labml.configs.option(name: Union[any, List[any]], pass_params: List[any])
labml.configs.option(name: Union[any, List[any]], option_name: str, pass_params: List[any])

Use this as a decorator to register configuration options.

This has multiple overloads

labml.configs.option(config_item: Union[any, List[any]])[source]
labml.configs.option(config_item: Union[any, List[any]], option_name: str)[source]
labml.configs.option(config_item: Union[any, List[any]], pass_params: List[any])[source]
labml.configs.option(config_item: Union[any, List[any]], option_name: str, pass_params: List[any])[source]
Parameters
  • name – the configuration item or a list of items. If it is a list of items the function should return tuple.

  • option_name (str, optional) – name of the option. If not provided it will be derived from the function name.

  • pass_params (list, optional) – list of params to be passed. If not provided the configs object is passed. If provided the corresponding calculated configuration items will be passed to the function

labml.configs.calculate(name: Union[any, List[any]], func: Callable)[source]
labml.configs.calculate(name: Union[any, List[any]], option_name: str, func: Callable)
labml.configs.calculate(name: Union[any, List[any]], pass_params: List[any], func: Callable)
labml.configs.calculate(name: Union[any, List[any]], option_name: str, pass_params: List[any], func: Callable)

Use this to register configuration options.

This has multiple overloads

labml.configs.calculate(name: Union[any, List[any]], func: Callable)[source]
labml.configs.calculate(name: Union[any, List[any]], option_name: str, func: Callable)[source]
labml.configs.calculate(name: Union[any, List[any]], pass_params: List[any], func: Callable)[source]
labml.configs.calculate(name: Union[any, List[any]], option_name: str, pass_params: List[any], func: Callable)[source]
Parameters
  • name – the configuration item or a list of items. If it is a list of items the function should return tuple.

  • func – the function to calculate the configuration

  • option_name (str, optional) – name of the option. If not provided it will be derived from the function name.

  • pass_params (list, optional) – list of params to be passed. If not provided the configs object is passed. If provided the corresponding calculated configuration items will be passed to the function

labml.configs.hyperparams(*args: any, is_hyperparam=True)[source]

Identifies configuration as (or not) hyper-parameters

Parameters
  • *args – list of configurations

  • is_hyperparam (bool, optional) – whether the provided configuration items are hyper-parameters. Defaults to True.

labml.configs.meta_config(*args: any, is_meta=True)[source]

Identifies configuration as meta parameter

Parameters
  • *args – list of configurations

  • is_meta (bool, optional) – whether the provided configuration items are meta. Defaults to True.

labml.configs.aggregate(name: any, option_name: str, *args: Tuple[any, any])[source]

Aggregate configs

Parameters
  • name – name of the aggregate

  • option_name – aggregate option name

  • *args – list of configs to be aggregated

Dynamic Hyper-parameters

labml analytics
class labml.configs.DynamicHyperParam(default: Union[float, int], type_: str, range_: Tuple[float, float])[source]

Dynamic hyper-parameters can be changed manually on labml.ai app <https://labml.ai> while the models are training. There are designed as an alternative to hyper-parameter schedules like gradually decreasing learning rate as the training progresses. Dynamic hyper-parameters let users change the values based on training metrics instead of sticking to a pre-determined schedule.

This is the base class that is extended by specific dynamic hyper-parameter types. You should use those.

class labml.configs.FloatDynamicHyperParam(default: float, range_: Tuple[float, float] = (0, 1))[source]

Use this for for floating-point values.

Parameters
  • default (float) – default value of the hyper-parameter

  • range (Tuple[float, float]) – the value range for the hyper-parameter

class labml.configs.IntDynamicHyperParam(default: int, range_: Tuple[int, int] = (1, 16))[source]

Use this for for integer values.

Parameters
  • default (int) – default value of the hyper-parameter

  • range (Tuple[int, int]) – the value range for the hyper-parameter