The TrainProcess iterates over epochs of training a network. It
typically has an EpochProcess as its sub_proc
. When this
process is initialized (e.g. by ReInit
or NewInit
), it
also initializes the weights of the network. It has an epoch
counter which is tied to the epoch
counter on the network object,
which this process increments after every epoch of training. Note that
if the epoch process under this training process is in TEST
mode,
then neither epoch counter is incremented.
There is an alternative kind of process which also iterates over epochs,
called the NEpochProcess, which differs from the TrainProcess in
that it does not initialize the network when it is initialized. Also,
it keeps its own epoch
counter separate from that of the network.
Thus, while it will increment the network's counter during training (but
not turing testing), it will increment its epoch counter even
during testing. Thus, it is useful for cases where you need to run
multiple epochs of testing (e.g., to get multiple samples from settling
in a stochastic network).