mnist.py uses a CNN for classification of the MNIST dataset. It also includes details of saving network state to file and reloading. The code is based on the following tutorials.
dssgd.py implements Distributed Selective Stochastic Gradient Descent implemented on the MNIST dataset.
Currently supported parameters are as follows :-
- trainers : number of participants in DSSGD
- partition_ratio : part of data sets available to individual participant.
- n_parts : number of times global update happens per epoch
- theta : fraction to total parameters updated to global state
- n_epochs : number of epochs used for training
The usual SGD parameters are also present : batch_size_train, batch_size_test, learning_rate, momentum and
log_interval.
Create a folder results in the same directory to store the trained models and optimizers.