Skip to content

frameworks.ultralytics.parameters.hyper_parameters

hyper_parameters

Classes:

Name Description
UltralyticsHyperParameters

Defines the set of training hyperparameters used for Ultralytics models.

UltralyticsHyperParameters(log_data)

Bases: HyperParameters

Defines the set of training hyperparameters used for Ultralytics models.

This class extracts, validates, and stores training hyperparameters from a Picsellia experiment log. Each parameter includes type validation, default value fallback, and optional value range enforcement.

Parameters:

Name Type Description Default

log_data

LogDataType

The dictionary of logged hyperparameters from the Picsellia platform.

required

Methods:

Name Description
extract_parameter

Extract a parameter using keys, type, optional default, and optional value range.

to_dict

Return parameters as a dictionary, excluding internal fields.

validate_log_data

Validate and return log data if it's a dictionary.

Attributes:

Name Type Description
time
patience
save_period
cache
workers
optimizer
deterministic
single_cls
rect
cos_lr
close_mosaic
amp
fraction
profile
freeze
lr0
lrf
momentum
weight_decay
warmup_epochs
warmup_momentum
warmup_bias_lr
box
cls
dfl
pose
kobj
label_smoothing
nbs
overlap_mask
mask_ratio
dropout
plots
parameters_data
defaulted_keys set[str]
epochs
batch_size
image_size
seed
validate
train_set_split_ratio
device

time = self.extract_parameter(keys=['time'], expected_type=Optional[float], default=None) instance-attribute

patience = self.extract_parameter(keys=['patience'], expected_type=int, default=100) instance-attribute

save_period = self.extract_parameter(keys=['save_period'], expected_type=int, default=100) instance-attribute

cache = self.extract_parameter(keys=['cache', 'use_cache'], expected_type=bool, default=False) instance-attribute

workers = self.extract_parameter(keys=['workers'], expected_type=int, default=8) instance-attribute

optimizer = self.extract_parameter(keys=['optimizer'], expected_type=str, default='auto') instance-attribute

deterministic = self.extract_parameter(keys=['deterministic'], expected_type=bool, default=True) instance-attribute

single_cls = self.extract_parameter(keys=['single_cls'], expected_type=bool, default=False) instance-attribute

rect = self.extract_parameter(keys=['rect'], expected_type=bool, default=False) instance-attribute

cos_lr = self.extract_parameter(keys=['cos_lr'], expected_type=bool, default=False) instance-attribute

close_mosaic = self.extract_parameter(keys=['close_mosaic'], expected_type=int, default=10) instance-attribute

amp = self.extract_parameter(keys=['amp'], expected_type=bool, default=True) instance-attribute

fraction = self.extract_parameter(keys=['fraction'], expected_type=float, default=1.0) instance-attribute

profile = self.extract_parameter(keys=['profile'], expected_type=bool, default=False) instance-attribute

freeze = self.extract_parameter(keys=['freeze'], expected_type=Optional[int], default=None) instance-attribute

lr0 = self.extract_parameter(keys=['lr0'], expected_type=float, default=0.01) instance-attribute

lrf = self.extract_parameter(keys=['lrf'], expected_type=float, default=0.1) instance-attribute

momentum = self.extract_parameter(keys=['momentum'], expected_type=float, default=0.937) instance-attribute

weight_decay = self.extract_parameter(keys=['weight_decay'], expected_type=float, default=0.0005) instance-attribute

warmup_epochs = self.extract_parameter(keys=['warmup_epochs'], expected_type=float, default=3.0) instance-attribute

warmup_momentum = self.extract_parameter(keys=['warmup_momentum'], expected_type=float, default=0.8) instance-attribute

warmup_bias_lr = self.extract_parameter(keys=['warmup_bias_lr'], expected_type=float, default=0.1) instance-attribute

box = self.extract_parameter(keys=['box'], expected_type=float, default=7.5) instance-attribute

cls = self.extract_parameter(keys=['cls'], expected_type=float, default=0.5) instance-attribute

dfl = self.extract_parameter(keys=['dfl'], expected_type=float, default=1.5) instance-attribute

pose = self.extract_parameter(keys=['pose'], expected_type=float, default=12.0) instance-attribute

kobj = self.extract_parameter(keys=['kobj'], expected_type=float, default=2.0) instance-attribute

label_smoothing = self.extract_parameter(keys=['label_smoothing'], expected_type=float, default=0.0) instance-attribute

nbs = self.extract_parameter(keys=['nbs'], expected_type=int, default=64) instance-attribute

overlap_mask = self.extract_parameter(keys=['overlap_mask'], expected_type=bool, default=True) instance-attribute

mask_ratio = self.extract_parameter(keys=['mask_ratio'], expected_type=int, default=4) instance-attribute

dropout = self.extract_parameter(keys=['dropout'], expected_type=float, default=0.0) instance-attribute

plots = self.extract_parameter(keys=['plots'], expected_type=bool, default=True) instance-attribute

parameters_data = self.validate_log_data(log_data) instance-attribute

defaulted_keys = set() instance-attribute

epochs = self.extract_parameter(keys=['epoch', 'epochs'], expected_type=int) instance-attribute

batch_size = self.extract_parameter(keys=['batch_size', 'batch'], expected_type=int, default=8) instance-attribute

image_size = self.extract_parameter(keys=['image_size', 'imgsz', 'img_size'], expected_type=int) instance-attribute

seed = self.extract_parameter(keys=['seed'], expected_type=int, default=0) instance-attribute

validate = self.extract_parameter(keys=['validate', 'val', 'validation'], expected_type=bool, default=False) instance-attribute

train_set_split_ratio = self.extract_parameter(keys=['prop_train_split', 'train_set_split_ratio'], expected_type=float, default=0.8) instance-attribute

device = self.extract_parameter(keys=['device'], expected_type=str, default='cuda:0') instance-attribute

extract_parameter(keys, expected_type, default=..., range_value=None)

extract_parameter(keys: list, expected_type: type[T], default: Any = ..., range_value: tuple[Any, Any] | None = None) -> T
extract_parameter(keys: list, expected_type: Any, default: Any = ..., range_value: tuple[Any, Any] | None = None) -> Any

Extract a parameter using keys, type, optional default, and optional value range.

Examples:

Extract a required string parameter that cannot be None:

parameter = self.extract_parameter(keys=["key1", "key2"], expected_type=str)

Extract a required integer parameter that can be None:

parameter = self.extract_parameter(keys=["key1"], expected_type=int | None)

Extract an optional float parameter within a specific range:

parameter = self.extract_parameter(keys=["key1"], expected_type=float, default=0.5, range_value=(0.0, 1.0))

Extract an optional string parameter with a default value:

parameter = self.extract_parameter(keys=["key1"], expected_type=str, default="default_value")

Extract an optional string parameter that can be None:

parameter = self.extract_parameter(keys=["key1"], expected_type=Union[str, None], default=None)

Parameters:

Name Type Description Default
keys
list

A list of possible keys to extract the parameter.

required
expected_type
type[T]

The expected type of the parameter, can use Union for optional types.

required
default
Any

The default value if the parameter is not found. Use ... for required parameters.

...
range_value
tuple[Any, Any] | None

A tuple of two numbers representing the allowed range of the parameter.

None

Returns:

Type Description
Any

The parsed parameter.

to_dict()

Return parameters as a dictionary, excluding internal fields.

validate_log_data(log_data)

Validate and return log data if it's a dictionary.