## CONTEXTE Nous avons créé un réseau de neurones permettant d'identifier des images de plantes. Ce réseau de neurones a été réalisé dans le cadre d'un projet de data-science à HETIC en Mastère Big Data 5ème année. ## REQUIREMENTS - python 3.7 - pip - venv ## INSTALLATION - creation d'un venv `virtualenv venv` - Si vous avez CUDA : - installation des requirements `source ./venv/Scripts/activate` `pip install -r requirements_GPU.txt` - Si vous n'avez pas CUDA : - installation des requirements `source ./venv/Scripts/activate` `pip install -r requirements_CPU.txt` - Si une erreur persiste : **RTFM** ## RUNNING Il existe un total de 4 fichiers à exécuter pour obtenir un résultat sur les prédicitions du réseau de neurones. L'ensemble du réseau est divisé de telle manière pour éviter d'avoir à réexecuter des portions qui consomme beaucoup de temps et de ressources (DataCreator, FeatureExtractor, Trainer) à chaque fois qu'on veut obtenir un résultat. Placez-vous dans le dossier contenant les fichiers .py 1. **Exécuter le fichier DataCreator.py** - Pour Windows : `py DataCreator.py` - Pour Mac : `python DataCreator.py` ou `python3 DataCreator.py` - Pour Linux: `python DataCreator.py` - Télécharge s'il n'existe pas encore un zip à partir d'une URL pour obtenir l'ensemble des dossiers contenant les images de plantes et le csv contenant les features des plantes. - Nettoyage du dataset et réorganisation de l'architecture des dossiers afin d'avoir les dossiers correspondant aux catégories - Creation de 3 image supplementaire a partire de l'image source (flip horizontal, flip vertical, flip horizontal et vertical) 2. **Exécuter le fichier FeatureExtractor.py** - Pour Windows : `py FeatureExtractor.py` - Pour Mac : `python FeatureExtractor.py` ou `python3 FeatureExtractor.py` - Pour Linux: `python FeatureExtractor.py` - Créer une liste dans laquelle on stocke les images reshape et les id des catégories sous la même forme que l'architecture des dossiers (id_cat > image) - À partir de cette liste, on extraie les images et les catégories dans 4 listes séparées, 2 pour le train (90% des données) et 2 pour le test (10% des données) - Sauvegarde de ces fichiers (train, test et catégories au format npy) pour une utilisation dans le trainer et le predicter. 3. **Exécuter le fichier trainer.py** - Pour Windows : `py trainer.py` - Pour Mac : `python trainer.py` ou `python3 trainer.py` - Pour Linux: `python trainer.py` - Chargement des fichiers contenants les features train et catégories (depuis FeatureExtractor) - Configuration du model - Training du model - Sauvegarde du model au format h5 4. **Exécuter le fichier predicter.py** - Pour Windows : `py predicter.py` - Pour Mac : `python predicter.py` ou `python3 predicter.py` - Pour Linux: `python predicter.py` - Chargement des fichiers contenants les features test (depuis FeatureExtractor) - Chargement du Model (depuis trainer.py) - Evaluation (testing) du model avec les features test ## PERFORMANCE