Ce projet vise à comparer plusieurs architectures de réseaux de neurones convolutifs (CNN) pour la classification d’images de chats et de chiens. Trois approches sont étudiées :
- CNN From Scratch : Un modèle construit et entraîné manuellement sans transfert d’apprentissage.
- ResNet18 : Utilisation du modèle ResNet18 pré-entraîné, adapté à la classification binaire.
- EfficientNet : Utilisation du modèle EfficientNet-B0 pré-entraîné, adapté à la classification binaire.
CNN-FromScratch/: Scripts pour entraîner et utiliser un CNN personnalisé.CNN-ResNet18/: Scripts pour entraîner et utiliser ResNet18.CNN-efficientNet/: Scripts pour entraîner et utiliser EfficientNet.Weights/: Dossier contenant les fichiers de poids des modèles entraînés.1 - archive/PetImages/: Dossier contenant les images d’entraînement.2 - test_file/: Dossier contenant les images de test.
- Clonez le dépôt.
- Installez les dépendances :
pip install -r requirements.txt - Placez les images dans les dossiers appropriés (
1 - archive/PetImagespour l’entraînement,2 - test_filepour le test).
- Pour entraîner un modèle, utilisez les notebooks dans chaque dossier correspondant.
- Pour tester un modèle, utilisez les notebooks
Using_modele.ipynb,using_resnet18.ipynbouusing_efficientNet.ipynb.
Les performances des différents modèles sont comparées en termes de précision sur le jeu de test. Les résultats sont présentés dans les notebooks.
- Les chemins d’accès aux fichiers de poids sont gérés dynamiquement pour faciliter l’exécution sur différents environnements.
- Les modèles utilisent le GPU Apple Silicon (
mps) si disponible, sinon le CPU.
Auteur : Arthur PRIGENT
N’hésitez pas à adapter ce projet à vos besoins ou à l’améliorer !# Image-classification-with-CNN