This repository contains the code that I used to train the models mentioned in my bachelor thesis. Please note that there is a lot of code that I used in the beginning and then stopped using towards the end of the thesis. When processing data, I often omitted writing a script and worked in the python shell directly, for example while saving the AffectNet images into NumPy arrays.
I trained my models using the train.py script which has a command-line
interface for handling training parameters such as the number of epochs
or the batch size. The models BASE, COV and STN-COV can be found in the
file keras_models.py. They are called DenseNet121, DenseNet121CovDropout
and STNDenseNet121CovDropout respectively. Other models that I tried during
my thesis can be found in the directories residual_attention_network, keras_vggface or keras_applications or
in one of the following files: bregnet.py, ensemble.py, holonet.py,
lightcnn.py, model.py, ran.py, resnet50plus.py, squeezenet.py.
The training batches that all contain the same amount of images from
each category are created by the TrainDataGenerator and the ValDataGenerator
which can be found in the file generator.py. They have a lot of parameters because
I experimented a lot, but in the end I often used the standard configuration and just
specified the batch_size and maybe one or two other parameters. Please note
that you have to set augment=False in the ValDataGenerator if you want to have
meaningful comparisons of the validation accuracy of different models.