BPTT#
- class brainpy.BPTT(target, loss_fun, optimizer=None, loss_has_aux=False, loss_auto_run=True, seed=None, shuffle_data=None, **kwargs)[source]#
The trainer implementing the back-propagation through time (BPTT) algorithm for training dyamical systems.
For more parameters, users should refer to
DSRunner
.- Parameters:
target (DynamicalSystem) – The target model to train.
loss_fun (str, callable) –
The loss function.
If it is a string, it should be the function chosen from
brainpy.losses
module.Otherwise, a callable function which receives argument of
(predicts, targets)
should be provided.
Note
If
monitors
has been set in the trainer, thepredicts
contains two parts: the network history prediction outputs, and the monitored values.see BrainPy examples for more information.
loss_has_aux (bool) –
To indicate whether the loss function returns auxiliary data expect the loss. Moreover, all auxiliary data should be a dict, whose key is used for logging item name and its data is used for the corresponding value. For example,
def loss_fun(predicts, targets): return loss, {'acc': acc, 'spike_num': spike_num}
optimizer (Optimizer) – The optimizer used for training. Should be an instance of
Optimizer
.numpy_mon_after_run (bool) – Make the monitored results as NumPy arrays.
logger (Any) – A file-like object (stream). Used to output the running results. Default is the current sys.stdout.
data_first_axis (str) – To indicate whether the first axis is the batch size (
data_first_axis='B'
) or the time length (data_first_axis='T'
).