lens#

Classes to interact with neural networks and visualization.

User interface encapsulating interactions between monitorch.gatherer, monitorch.preprocessor and monitorch.visualizer. Each lens is roughly associated with one of the preprocessors and allows visualizer configuration through parameters in constructor.

Every lens supports both in-memory and in-place computation of statistics (default is in-place). in-place computations consume roughly linear space in number of layers processed by a lens. in-memory computations consume rougly linear space in number of layers processed by a lens times batch iterations. Exceptions are gradient geometry lenses ParameterGradientGeometry and OutputGradientGeometry, see the classes for details.

Lenses are managed by monitorch.inspector.PyTorchInspector, whom they are passed to during initialization.

Examples

>>> from monitorch.inspector import PyTorchInspector
>>> from monitorch.lens import LossMetrics, ParameterNorm
>>>
>>> mynet = MyNeuralNetwork()
>>>
>>> inspector = PyTorchInspector(
...     lenses = [
...         LossMetrics(),
...         ParameterNorm( normalize_by_size=True )
...     ],
...     module = mynet,
...     visualizer='tensorboard'
... )
>>>
>>> for epoch in range(N_EPOCHS):
...     ... # training-validation loop remains unchanged
...     inspector.tick_epoch()