12.4.2 Iterating over Epochs: TrainProcess

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).