dacapo.experiments.training_stats

Attributes

logger

Classes

TrainingStats

A class used to represent Training Statistics. It contains a list of training

Module Contents

dacapo.experiments.training_stats.logger
class dacapo.experiments.training_stats.TrainingStats

A class used to represent Training Statistics. It contains a list of training iteration statistics. It also provides methods to add new iteration stats, delete stats after a specified iteration, get the number of iterations trained for, and convert the stats to a xarray data array.

iteration_stats

List[TrainingIterationStats] an ordered list of training stats.

add_iteration_stats(iteration_stats

TrainingIterationStats) -> None: Add a new set of iterations stats to the existing list of iteration stats.

delete_after(iteration

int) -> None: Deletes training stats after a specified iteration number.

trained_until() int

Gets the number of iterations that the model has been trained for.

to_xarray() xr.DataArray

Converts the iteration statistics to a xarray data array.

Note

The iteration stats list is structured as follows: - The outer list contains the stats for each iteration. - The inner list contains the stats for each training iteration.

iteration_stats: List[dacapo.experiments.training_iteration_stats.TrainingIterationStats]
add_iteration_stats(iteration_stats: dacapo.experiments.training_iteration_stats.TrainingIterationStats) None

Add a new iteration stats to the current iteration stats.

Parameters:

iteration_stats (TrainingIterationStats) – a new iteration stats object.

Raises:

assert – if the new iteration stats do not follow the order of existing iteration stats.

Examples

>>> training_stats = TrainingStats()
>>> training_stats.add_iteration_stats(TrainingIterationStats(0, 0.1))
>>> training_stats.add_iteration_stats(TrainingIterationStats(1, 0.2))
>>> training_stats.add_iteration_stats(TrainingIterationStats(2, 0.3))
>>> training_stats.iteration_stats
[TrainingIterationStats(iteration=0, loss=0.1),
 TrainingIterationStats(iteration=1, loss=0.2),
 TrainingIterationStats(iteration=2, loss=0.3)]

Note

The iteration stats list is structured as follows: - The outer list contains the stats for each iteration. - The inner list contains the stats for each training iteration.

delete_after(iteration: int) None

Deletes training stats after a specified iteration.

Parameters:

iteration (int) – the iteration after which the stats are to be deleted.

Raises:

assert – if the iteration number is less than the maximum iteration number.

Examples

>>> training_stats = TrainingStats()
>>> training_stats.add_iteration_stats(TrainingIterationStats(0, 0.1))
>>> training_stats.add_iteration_stats(TrainingIterationStats(1, 0.2))
>>> training_stats.add_iteration_stats(TrainingIterationStats(2, 0.3))
>>> training_stats.delete_after(1)
>>> training_stats.iteration_stats
[TrainingIterationStats(iteration=0, loss=0.1)]

Note

The iteration stats list is structured as follows: - The outer list contains the stats for each iteration. - The inner list contains the stats for each training iteration.

trained_until() int

The number of iterations trained for (the maximum iteration plus one). Returns zero if no iterations trained yet.

Returns:

number of iterations that the model has been trained for.

Return type:

int

Raises:

assert – if the iteration stats list is empty.

Examples

>>> training_stats = TrainingStats()
>>> training_stats.add_iteration_stats(TrainingIterationStats(0, 0.1))
>>> training_stats.add_iteration_stats(TrainingIterationStats(1, 0.2))
>>> training_stats.add_iteration_stats(TrainingIterationStats(2, 0.3))
>>> training_stats.trained_until()
3

Note

The iteration stats list is structured as follows: - The outer list contains the stats for each iteration. - The inner list contains the stats for each training iteration.

to_xarray() xarray.DataArray

Converts the iteration stats to a data array format easily manipulatable.

Returns:

xarray DataArray of iteration losses.

Return type:

xr.DataArray

Raises:

assert – if the iteration stats list is empty.

Examples

>>> training_stats = TrainingStats()
>>> training_stats.add_iteration_stats(TrainingIterationStats(0, 0.1))
>>> training_stats.add_iteration_stats(TrainingIterationStats(1, 0.2))
>>> training_stats.add_iteration_stats(TrainingIterationStats(2, 0.3))
>>> training_stats.to_xarray()
<xarray.DataArray (iterations: 3)>
array([0.1, 0.2, 0.3])
Coordinates:
  * iterations  (iterations) int64 0 1 2

Note

The iteration stats list is structured as follows: - The outer list contains the stats for each iteration. - The inner list contains the stats for each training iteration.