Ce projet a pour but d'implémenter et d'utiliser un perceptron multi-couches (PMC) afin de classifier 3 drapeaux nationaux.
Savez-vous différencier les 3 drapeaux suivants ?
Jordanie | Palestine | Soudan |
---|---|---|
1. git clone https://github.com/0ENZO/Country_guesser/
2. pip install -r requirements.txt
Une fois le projet installé, le fichier librarie.cpp doit être build afin de pouvoir exploiter la librairie
Le perceptron a été implémenté en tant que librairie C++
Le dataset est constitué d'environ 250 images par drapeau, aux alentours de 200 pour l'entraînement et de 40 pour le test.
Parmi les différentes consignes strictes, l'une d'entre elles était d'entraîner jusqu'à convergence les 4 modèles d'architecture suivante :
- PMC sans couche cachée
- PMC avec une couche cachée de 8 neurones
- PMC avec une couche cachée de 32 neurones
- PMC avec deux couches cachées de 32 neurones
Un modèle par architecture a été retenu, ces 4 modèles entraînés ont entre 81% et 83% d'accuracy sur le dataset de test.
Une petite web app streamlit a été développé et permet d'upload une image, de choisir parmi un des 4 modèles entrainés cités précedement et de finalement prédire à quel pays appartient le drapeau. Pour déployer l'app en local et en ligne, ngrok a été utilisé
Mettre à jour la commande suivante et l'éxécuter
streamlit run "C:/Users/../Country_guesser/python/app.py" --server.port 80
- Python
- C++
Le projet a été développé avec la suite JetBrains (CLion & PyCharm)