12.4.1 Iterating over Networks: BatchProcess

The BatchProcess iterates over the training of networks. This is useful in determining the average learning time for a given problem with different random initial weights, for example. The batch process has a batch counter object, which records the number of networks that have been trained so far. The appropriate sub-process type for a batch process is a TrainProcess, though it is possible to have multiple batch processes before the train process, in order to have multiple loops of network training (presumably with some parameter manipulation in between).

There is a built-in batch process type that makes it easy to perform simple searches of parameter space called the GridSearchBatch. This process increments a single parameter value in step with the batch counter, and applies this value to any parameter of the user's choosing. The parameter to be modified is specified by giving a CSS-style path to that parameter from the common project object (see section 7.2.3 Accessing Hard-Coded Objects in CSS for details). An example project which uses this grid search batch is `demo/bp/gridsearch_xor.proj.gz', which can be consulted to see how it works in practice. It also records the current value of the parameter to the log file.