Closed ewagner70 closed 6 years ago
Hi @ewagner70,
The prediction model is implemented in a basic way and the method is even out-of-date, so the result should be not that good.
To improve the prediction accuracy, here are my suggestions,
Try deeper models In this project, I only take first few layers of VGG16 and train from scratch (risks of overfitting or not general enough). There are some modern nets such as DenseNet or ResNet. You can use them as the "feature extractor" (i.e., pretrained one) and only retrain the last one or two layers.
Using more training data In this case, you can either do data augmentation or use more training data (more and different training dataset). It is helpful to improve generalizability of the prediction model.
Making testing environments more similar to the training one The reason that the model performs not well on testing dataset might be the difference between training and testing environments. For example, due to the viewing angle, contrast, the area of screen occupied by face, or even races, the model might feel confused about the prediction criteria.
Modern methods If my memory serves me well, this filed is already well-studied. You can find lots of excellent and insightful papers online.
Best Regards, Hui-Po Wang
I'm using tensorflow backend and I've converted your weights via the folowing code:
It runs and it shows me the predictions, but they're mostly wrong (always sad, angry and very rarely happy, etc.).
then i downloaded fer2013 and ran fer20134atagen.py and model_training.py with tensorflow backend and the results improved somewhat.
Anything hints on how to improve training and the predictions? Or Is there maybe a better better trained_model to download?