chainer.training.extensions.LinearShift

class chainer.training.extensions.LinearShift(attr, value_range, time_range, optimizer=None)[source]

Trainer extension to change an optimizer attribute linearly.

This extension changes an optimizer attribute from the first value to the last value linearly within a specified duration. The typical use case is warming up of the momentum coefficient.

For example, suppose that this extension is called at every iteration, and value_range == (x, y) and time_range == (i, j). Then, this extension keeps the attribute to be x up to the i-th iteration, linearly shifts the value to y by the j-th iteration, and then keeps the value to be y after the j-th iteration.

This extension is also called before the training loop starts by default.

Parameters:
  • attr (str) – Name of the optimizer attribute to adjust.
  • value_range (tuple of float) – The first and the last values of the attribute.
  • time_range (tuple of ints) – The first and last counts of calls in which the attribute is adjusted.
  • optimizer (Optimizer) – Target optimizer object. If it is None, the main optimizer of the trainer is used.

Methods

__call__(trainer)[source]
finalize()[source]

Finalizes the extension.

This method is called at the end of the training loop.

initialize(trainer)[source]
serialize(serializer)[source]

Attributes

default_name

Default name of the extension.

It is the name of the class by default. Implementation can override this property, or provide a class attribute to hide it.

priority = 100
trigger = (1, 'iteration')