This code is for the paper: Revisiting Convergence: A Study on Shuffling-Type Gradient Methods

For Section 5.1: 

At the beginning of "convex.py", you will see the following code:

settings=["exp","poly"]
setting=settings[0]

Run this original code with setting=settings[0], or changing to setting=settings[1], you will respectively obtain the results of strongly convex exponential and convex polynomial problems (see the experiment section of the paper for details), respectively in the new created folders "exponential_result" and "poly_result", containing the following files. 

- the result figure "fx.png"
- the file “hyperparameters.txt” which records the hyperparameters. 


For Section 5.2: 

Simply run “PhaseRetrieval.py”. A new folder called “Phase_results” will be created with the following files. 
- the result figure 'PhaseResults.png' for phase retrieval 
- the file “hyperparameters.txt” which records the hyperparameters and time consumption. 

Simply run "DRO.py". A new folder called “DRO_results” will be created with the following files.

- the result figure 'DRO_Results.png' for DRO problem
- the file “hyperparameters.txt” which records the hyperparameters and time consumption 
- the .npy files which saves the learning curves of objective function value Psi to be plotted. 

For Section 5.3:

The "Cifar10.py" code which applies Resnet18 to Cifar 10 is adapted from https://github.com/kuangliu/pytorch-cifar/blob/master/main.py. Run this code, it will generate a new folder "Cifar10_result" with the following files.

- the result figures in png format 
- the file “hyperparameters.txt” which records the hyperparameters and time consumption 
- the .npy files which saves the results to be plotted.

