[PYTHON] Jusqu'à ce que vous essayiez de laisser DNN apprendre la vérité de l'image en utilisant Colab

introduction

Je voulais connaître la vérité de l'image chez Colaboratory, mais il était difficile de collecter des informations à divers endroits. J'ai donc décidé de ** coller le produit fini tel quel **. Python Pour ceux qui comprennent en quelque sorte.

Ne pas https://colab.research.google.com/drive/1ETjxVKCA3zv391tEAY5RHM_cyipIA9D-?hl=ja

Je ne pense pas que quiconque puisse l'utiliser tel quel, mais j'espère que cela aidera quelqu'un. ** Je l'ai fait sans être familier avec Jupyter-notebook ou Python, donc j'espère que vous pourrez signaler quelque chose. ** **

Ce que je voulais faire

C'est ce que je voulais faire.

--Utiliser Colaboratory ――Je veux apprendre la vérité de l'image --L'apprentissage en profondeur

Structure des dossiers de fichiers ZIP

Que fais tu

Écrivez une explication de ce que vous faites facilement. Accédez à Colaboratory et consultez le code.

1ère cellule (monture Google Drive)

Montez Google Drive. Comme vous pouvez le voir. Il semble que GitHub soit souvent utilisé dans le monde. Avec GoogleDrive, l'authentification est gênante à chaque fois.

Deuxième cellule (extension des données d'entraînement)

Extrayez le fichier ZIP des données d'entraînement sur Google Drive sur le disque. Il est possible de lire chaque image des données d'entraînement depuis Google Drive, mais c'est lent. En effet, il est beaucoup plus rapide de créer un fichier ZIP, de tout extraire sur le disque, puis de le lire à partir du disque.

Troisième cellule (lecture des données d'entraînement)

Je voulais que les données d'entraînement et les données de test aient le même nombre de vérités, j'ai donc créé un générateur generate_paths qui retourne les chemins d'images en alternance avec la vérité tout en mélangeant. C'est, 0-1, 0-2, 0-3, 0-4, 0-5 comme faux Comme vrai 1-1, 1-2, 1-3, 1-4, 1-5 En supposant qu'il y avait 10 images de 0-3, 1-5, 0-1, 1-1, 0-2, 1-3, 0-4, 1-4, 0-5, 1-2 Retourne comme.

Cela aurait pu être plus facile à comprendre si vous avez mélangé la liste normalement sans utiliser de générateur.

Dans la méthode load_data, les images sont en fait lues et transformées en tableau. La plupart des images traitées cette fois-ci ont un fond blanc, je les ai donc réglées sur «1 --X / 255» et je les ai inversées en virgule flottante de 0 à 1. C'est à peu près 0, et parfois il y a un 1. Il y a aussi des images couleur, donc le nombre de canaux d'entrée est de 3.

Quatrième cellule (apprentissage)

Je ferai de mon mieux pour apprendre. N'oubliez pas de sauvegarder le temps que vous avez terminé pour savoir quand vous avez fini d'apprendre.

import datetime
tz_jst = datetime.timezone(datetime.timedelta(hours=9), name="JST")
now = datetime.datetime.now(tz_jst)
str_now = now.strftime("%Y/%m/%d %H:%M:%S")
print(f"La formation est terminée{str_now}")

Enregistrez le modèle entier et son architecture.

5ème cellule (dessiner un graphique)

Affichez-le à l'écran avec % matplotlib inline et enregistrez-le dans Google Drive.

Conclusion

Colaboratory, GPU, etc. sont très pratiques à utiliser gratuitement. Ce serait bien de pouvoir y accéder de n'importe où, même depuis un iPhone. Cependant, il est triste que le GPU et le TPU ne puissent pas être utilisés pendant la journée.

Concernant le résultat d'apprentissage, la précision, supérieure à 0,7 ... J'ai essayé divers essais et erreurs, mais c'est un peu subtil ... Je ne peux pas dire quelles sont les données d'entraînement, mais je pense que les données d'entraînement sont mauvaises (ou plutôt mauvaises) pour ce résultat.

Recommended Posts

Jusqu'à ce que vous essayiez de laisser DNN apprendre la vérité de l'image en utilisant Colab
Essayez d'utiliser n pour rétrograder la version de Node.js que vous avez installée
Essayez et apprenez iptables, jusqu'à ce que vous puissiez naviguer sur le Web
Jusqu'à ce que vous essayiez l'API Google Cloud Vision (détection d'images dangereuses)
Essayez de modifier une nouvelle image à l'aide du modèle StyleGAN2 entraîné
J'ai essayé de transformer l'image du visage en utilisant sparse_image_warp de TensorFlow Addons
J'ai essayé d'obtenir les résultats de Hachinai en utilisant le traitement d'image
Essayez d'imaginer les données d'élévation du National Land Research Institute avec Python
Essayez d'obtenir l'état de la surface de la route en utilisant de grandes données de gestion de la surface de la route
Laissez la machine "apprendre" les règles de FizzBuzz
Laissez l'API COTOHA faire les choses difficiles - Introduction à "apprendre en utilisant" le traitement du langage naturel -
[Python] J'ai essayé de juger l'image du membre du groupe d'idols en utilisant Keras
Comment obtenir le nom du bloc-notes que vous utilisez actuellement dans Google Colab
Essayez d'ajouter la distorsion de l'objectif fisheye à l'image
Vérifiez le type de variable que vous utilisez
J'ai essayé de corriger la forme trapézoïdale de l'image
Essayez d'utiliser le module de collections (ChainMap) de python3
J'ai essayé d'utiliser le filtre d'image d'OpenCV
Essayez de simuler le mouvement du système solaire
Jusqu'à ce que vous livriez le code source à la branche publique d'AGL (Automotive Grade Linux)
J'ai essayé d'extraire le texte du fichier image en utilisant Tesseract du moteur OCR
Essayez d'estimer le nombre de likes sur Twitter
Essayez d'obtenir le contenu de Word avec Golang
L'histoire de l'utilisation de Circleci pour construire des roues Manylinux
J'ai essayé de compresser l'image en utilisant l'apprentissage automatique
J'ai essayé de trouver l'entropie de l'image avec python
Essayez d'obtenir la liste des fonctions du paquet Python> os
CNN avec keras Essayez avec l'image que vous avez prise
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de régression
Essayez une recherche similaire de recherche d'images à l'aide du SDK Python [Recherche]
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de classification
Essayez d'améliorer la précision de l'estimation du nombre de Twitter
Essayez de résoudre les problèmes / problèmes du "programmeur matriciel" (fonction du chapitre 0)
Essayez d'automatiser le fonctionnement des périphériques réseau avec Python
Essayez de modéliser une distribution multimodale à l'aide de l'algorithme EM
Essayez d'extraire les caractéristiques des données de capteur avec CNN
Lorsque vous souhaitez utiliser plusieurs versions de la même bibliothèque Python (environnement virtuel utilisant venv)
Apprenez les données comptables et essayez de prédire les comptes à partir du contenu de la description lors de la saisie des journaux