Comment détecter le coronavirus à l’aide du Deep Learning – Meilleure programmation

Online Coding Courses for Kids

Après avoir vu comment notre jeu de données est structuré, nous pouvons commencer à construire notre script CNN.

Importations et arguments

Créez le train_covid19.py fichier et collez le code suivant:

Le script que nous allons créer utilise TensorFlow, Keras, scikit-learn et les bibliothèques OpenCV.

Nous utiliserons:

  • TensorFlow et Keras pour travailler avec tout ce qui concerne notre CNN (réseau neuronal convolutionnel)
  • scikit-learn pour travailler avec le prétraitement des données et l’évaluation des modèles
  • OpenCV pour charger et traiter des images
  • Matplotlib pour tracer les résultats du modèle

Après avoir importé les modules nécessaires, nous analyser les arguments de ligne de commande et initialiser les hyperparamètres (paramètres qui seront utilisés pour construire le CNN):

Les lignes 2 à 9 ont défini notre arguments de ligne de commande:

  • –dataset est le chemin de l’ensemble de données.
  • –plot est un chemin facultatif vers un tracé d’historique de formation en sortie. La valeur par défaut est plot.png.
  • –model est le chemin facultatif vers notre modèle de sortie Covid-19; par défaut, il sera nommé covid19.model.

Lignes 13 à 15 définies taux d’apprentissage initial, nombre de époques de formation et taille des lots.

Charger et traiter les données

Nous sommes maintenant prêts à charger et prétraiter nos données radiologiques:

Pour charger nos données, nous récupérons tous les chemins d’accès aux images dans le répertoire du jeu de données (ligne 3). Ensuite, pour chaque imagePath, nous:

  • Extrayez le libellé de classe (Covid ou normal) du chemin (ligne 11).
  • Chargez l’image, prétraitez-la en la convertissant en ordre de canaux RVB et redimensionnez-la à 224 × 224 pixels afin qu’elle soit prête pour notre réseau de neurones convolutionnels (lignes 15 à 17).
  • Mettez à jour nos listes de données et d’étiquettes, respectivement (lignes 20 et 21).

Lignes 25-27: convertissez les données et les étiquettes en tableaux NumPy.

Maintenant, nous pouvons encoder nos étiquettes avec un encodage à chaud (lignes 2 à 4) et diviser l’ensemble de données en train et tester:

L’encodage à chaud signifie que nos données seront affichées dans le format suivant:

[[0. 1.] [0. 1.] [0. 1.] … [1. 0.] [1. 0.] [1. 0.]]

Chaque étiquette codée est constituée d’un tableau à deux éléments, l’un des éléments étant «chaud» (1) ou «non» (0). Nous l’utilisons au besoin pour classer les cas positifs ou négatifs; c’est-à-dire que nous effectuons une classification binaire.

À la ligne 9, la taille du test 0,20 signifie que nous avons divisé l’ensemble de données, en réservant 20% pour les tests et les 80% restants pour la formation.

Ensuite, aux lignes 12 à 14, nous effectuons une augmentation des données, une technique de prétraitement des données qui améliore la capacité de classification de notre modèle.

Construisez le modèle

Après avoir traité toutes les données, nous pouvons initialiser notre modèle. Nous utiliserons le Modèle VGG16.

Les lignes 2 à 3 instancient le Réseau VGG16 avec des poids pré-formés sur ImageNet.

Aux lignes 6 à 11, nous construisons couches de têteet à la ligne 14, nous les ajoutons au modèle.

Aux lignes 17 à 18, nous gelons chaque couche de notre modèle afin qu’elles ne soient pas mises à jour lors du premier processus de formation.

Former le CNN

Nous sommes maintenant prêts à compiler et à former notre modèle d’apprentissage en profondeur Covid-19 (coronavirus):

Lignes 3-4: Ici, nous compilons le CNN avec le Optimiseur Adam. Étant donné qu’il s’agit d’un problème à deux classes, nous utilisons binary_crossentropy perte plutôt que catégorique crossentropy.

Lignes 9 à 14: nous appelons La méthode fit_generator de Keras, en passant dans nos données de radiographie thoracique via notre objet d’augmentation de données.

Évaluer le modèle

Après avoir formé le modèle, nous l’évaluons:

Lignes 3 à 6: nous faisons des prédictions sur l’ensemble de test et saisissons les indices de prédiction.

Lignes 9 à 10: ici, nous générons et imprimons un rapport de classification à l’aide de l’utilitaire d’aide de scikit-learn.

Ensuite, nous calculons une matrice de confusion pour une évaluation statistique plus approfondie:

Ligne 2: générer une matrice de confusion.

Lignes 4 à 6: utilisez la matrice de confusion pour dériver la précision, la sensibilité et la spécificité, et imprimez-les (lignes 9 à 12).

Tracé de formation à l’histoire et sérialisation du modèle

Nous avons au moins terminé notre détecteur de coronavirus (Covid-19) CNN. Mais nous voulons également voir l’historique de formation du détecteur et, à la fin, enregistrer le modèle dans un fichier.

Lignes 2 à 12: tracez la précision / perte d’entraînement du modèle.

Ligne 13: enregistrez le tracé dans le plot.png image que nous avons définie dans nos arguments.

Lignes 16-17: Enregistré le modèle dans un .model fichier.

Terminé!

Voici le plein train_covid19.py code:

Close Menu