skorch.history¶
Contains history class and helper functions.
-
class
skorch.history.
History
[source]¶ History contains the information about the training history of a
NeuralNet
, facilitating some of the more common tasks that are occur during training.When you want to log certain information during training (say, a particular score or the norm of the gradients), you should write them to the net’s history object.
It is basically a list of dicts for each epoch, that, again, contains a list of dicts for each batch. For convenience, it has enhanced slicing notation and some methods to write new items.
To access items from history, you may pass a tuple of up to four items:
- Slices along the epochs.
- Selects columns from history epochs, may be a single one or a tuple of column names.
- Slices along the batches.
- Selects columns from history batchs, may be a single one or a tuple of column names.
You may use a combination of the four items.
If you select columns that are not present in all epochs/batches, only those epochs/batches are chosen that contain said columns. If this set is empty, a
KeyError
is raised.Examples
>>> # ACCESSING ITEMS >>> # history of a fitted neural net >>> history = net.history >>> # get current epoch, a dict >>> history[-1] >>> # get train losses from all epochs, a list of floats >>> history[:, 'train_loss'] >>> # get train and valid losses from all epochs, a list of tuples >>> history[:, ('train_loss', 'valid_loss')] >>> # get current batches, a list of dicts >>> history[-1, 'batches'] >>> # get latest batch, a dict >>> history[-1, 'batches', -1] >>> # get train losses from current batch, a list of floats >>> history[-1, 'batches', :, 'train_loss'] >>> # get train and valid losses from current batch, a list of tuples >>> history[-1, 'batches', :, ('train_loss', 'valid_loss')]
>>> # WRITING ITEMS >>> # add new epoch row >>> history.new_epoch() >>> # add an entry to current epoch >>> history.record('my-score', 123) >>> # add a batch row to the current epoch >>> history.new_batch() >>> # add an entry to the current batch >>> history.record_batch('my-batch-score', 456) >>> # overwrite entry of current batch >>> history.record_batch('my-batch-score', 789)
Methods
append
($self, object, /)Append object to the end of the list. clear
($self, /)Remove all items from list. copy
($self, /)Return a shallow copy of the list. count
($self, value, /)Return number of occurrences of value. extend
($self, iterable, /)Extend list by appending elements from the iterable. from_file
(f)Load the history of a NeuralNet
from a json file.index
($self, value[, start, stop])Return first index of value. insert
($self, index, object, /)Insert object before index. new_batch
()Register a new batch row for the current epoch. new_epoch
()Register a new epoch row. pop
($self[, index])Remove and return item at index (default last). record
(attr, value)Add a new value to the given column for the current epoch. record_batch
(attr, value)Add a new value to the given column for the current batch. remove
($self, value, /)Remove first occurrence of value. reverse
($self, /)Reverse IN PLACE. sort
($self, /, *[, key, reverse])Stable sort IN PLACE. to_file
(f)Saves the history as a json file. to_list
()Return history object as a list. -
classmethod
from_file
(f)[source]¶ Load the history of a
NeuralNet
from a json file.Parameters: - f : file-like object or str