class brainpy.OfflineTrainer(target, fit_method=None, **kwargs)[source]#

Offline trainer for models with recurrent dynamics.

For more parameters, users should refer to DSRunner.

  • target (DynamicalSystem) – The target model to train.

  • fit_method (OfflineAlgorithm, Callable, dict, str) –

    The fitting method applied to the target model. - It can be a string, which specify the shortcut name of the training algorithm.

    Like, fit_method='ridge' means using the Ridge regression method. All supported fitting methods can be obtained through get_supported_offline_methods().

    • It can be a dict, whose “name” item specifies the name of the training algorithm, and the others parameters specify the initialization parameters of the algorithm. For example, fit_method={'name': 'ridge', 'alpha': 0.1}.

    • It can be an instance of brainpy.algorithms.OfflineAlgorithm. For example, fit_meth=bp.algorithms.RidgeRegression(alpha=0.1).

    • It can also be a callable function, which receives three arguments “targets”, “x” and “y”. For example, fit_method=lambda targets, x, y: numpy.linalg.lstsq(x, targets)[0].

  • kwargs (Any) – Other general parameters please see DSRunner.

__init__(target, fit_method=None, **kwargs)[source]#


__init__(target[, fit_method])


Move all variable into the CPU device.


Move all variables into the GPU device.

fit(train_data[, reset_state, shared_args])

Fit the target model according to the given training and testing data.

load_state_dict(state_dict[, warn, compatible])

Copy parameters and buffers from state_dict into this module and its descendants.

load_states(filename[, verbose])

Load the model states.

nodes([method, level, include_self])

Collect all children nodes.

predict(inputs[, reset_state, shared_args, ...])

Prediction function.

register_implicit_nodes(*nodes[, node_cls])

register_implicit_vars(*variables[, var_cls])


Reset state of the DSRunner.

run(*args, **kwargs)

Same as predict().

save_states(filename[, variables])

Save the model states.


Returns a dictionary containing a whole state of the module.


Moves all variables into the given device.


Move all variables into the TPU device.

train_vars([method, level, include_self])

The shortcut for retrieving all trainable variables.


Flattens the object as a PyTree.

tree_unflatten(aux, dynamic_values)

Unflatten the data to construct an object of this class.

unique_name([name, type_])

Get the unique name for this object.

vars([method, level, include_self, ...])

Collect all variables in this node and the children nodes.



Name of the model.