[PYTHON] [Explication pour les débutants] Tutoriel TensorFlow MNIST (pour les débutants)

Tutoriel pour débutants TensorFlow

J'ai dirigé le didacticiel TensorFlow Beginners MNIST For ML Beginners. Je suis diplômé en arts libéraux et ** Tensor Flow pour la première fois **, et au contraire ** Deep Learning pour la première fois **. De plus, ** j'ai à peine fait du machine learning **. Pour les connaissances mathématiques, veuillez vous référer à l'article Comment étudier les mathématiques pour les diplômés des arts libéraux pour comprendre les statistiques et l'apprentissage automatique. Il est expliqué du point de vue des débutants. Il y a de nombreuses parties qui manquent de précision, mais je donne la priorité à la clarté.

Lien de référence

Vue d'ensemble de MNIST pour les débutants en ML

Le schéma de principe est le suivant. 00.Overview.JPG

1. Apprendre à partir d'images et corriger les données de réponse

La base de données MNIST (base de données modifiée du National Institute of Standards and Technology) est un ensemble d'images numériques manuscrites et de données correctes indiquant les valeurs numériques que chaque image indique. il y a. Lisez ces données et découvrez quel type d'image doit être renvoyé.

2. Génération de modèles

À la suite de "1. Apprendre à partir d'images et corriger les données de réponse", créez une formule modèle. En interne, nous allons créer un modèle avec cette image (0 est pris comme exemple). 00.Overview02.JPG

3. Évaluation des résultats d'apprentissage

Calculez dans quelle mesure le taux de réponse correct sera obtenu par le modèle généré.

Procédure d'exécution MNIST For ML Beginners

Environnement d'exécution

L'environnement d'exécution est comme illustré dans la figure ci-dessous. Je cours depuis un notebook Jupyter. TensorFlowEnvironment.JPG

1. Démarrez Jupyter Notebook

Anaconda Navigator démarre à partir du menu Windows. Ensuite, lancez Jupyter Notebook à partir d'Anaconda Navigator. 10.LaunchJupyterNotebook01.JPG

10.LaunchJupyterNotebook02.JPG

Renommez le fichier dans Jupyter Notebook. 10.LaunchJupyterNotebook03.JPG

10.LaunchJupyterNotebook04.JPG

2. Exécutez le didacticiel

Tout ce que vous avez à faire est d'exécuter le didacticiel. Appuyez sur Maj + Entrée pour exécuter la commande (la touche Entrée seule est juste un saut de ligne). 20.RunMNIST01.JPG 20.RunMNIST02.JPG Le dernier "0,9178" est l'évaluation du résultat d'apprentissage, ce qui signifie que le taux de réponse correcte est d'environ 92%. 3.Computational Graph Lorsque vous sortez un graphe de calcul avec TensorBoard, cela ressemble à ceci. Pour plus de détails, reportez-vous à l'article «Tutoriel TensorFlow MNIST (pour les débutants) visualisé avec TensorBoard». 40.TensorBoard01.JPG

Explication de chaque commande

0. Aperçu

MNIST interprète les nombres manuscrits de 0 à 9 comme des données carrées de 28 points. MNIST Cependant, cela serait compliqué à expliquer dans cet article, nous allons donc remplacer les deux types de données manuscrites, barre verticale (|) et barre horizontale (-), par des données carrées à 5 points. Ensuite, cela ressemble à la figure ci-dessous. 30.Modeling01.JPG

1. Importation de données MNIST

Importation de données MINST. En définissant "one_hot = True", cela signifie que si les données existent déjà localement, elles ne seront pas importées.

from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

2. Charger la bibliothèque TensorFlow

import tensorflow as tf

3. Définition du modèle

Définissez trois variables et un modèle de régression. x: Variable pour mettre l'image de valeur numérique manuscrite W: Variable pour mettre la valeur de pondération b: Variable pour mettre la valeur du biais

Expliquer ce qui précède avec un modèle de barres verticales et horizontales carrées à 5 points ressemble à ceci (la valeur de biais de b est une variable d'ajustement et n'est pas incluse dans la figure). Le modèle est défini de manière à pouvoir être évalué par la valeur de $ x * W + b $. Pensez à "tf.nn.softmax" (fonction softmax) comme une conversion numérique pour l'évaluation. 30.Modeling02.JPG

x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, W) + b)

4. Définition de la variable correcte

Ici, définissez la variable de stockage des données de réponse correctes (l'image xx est la valeur numérique xx).

y_ = tf.placeholder(tf.float32, [None, 10])

5. Définition de l'entropie croisée

Définition de l'entropie croisée (entropie croisée). L'entropie croisée est la différence entre les valeurs prévues et réelles.

cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))

6. Définition de la méthode de formation

Entraînez-vous à l'aide du "tf.train.GradientDescentOptimizer".

train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

7. Génération de session et initialisation de variable

sess = tf.InteractiveSession()
tf.global_variables_initializer().run()

8. Exécution de la formation

Répétez la formation 1000 fois en utilisant 100 données aléatoires.

for _ in range(1000):
    batch_xs, batch_ys = mnist.train.next_batch(100)
    sess.run(train_step, feed_dict={x: batch_xs, y_:batch_ys})

9. Évaluation

Ici, la valeur prédite et la réponse correcte sont mises en correspondance. correct_prediction contient les données True / False. tf.argmax consiste à extraire la plus grande valeur des données (valeur numérique correcte). Utilisez tf.argmax pour afficher le nombre avec la probabilité la plus élevée (valeur d'évaluation y).

correct_prediction = tf.equal(tf.argmax(y,1),tf.argmax(y_,1))

10. Calcul de l'évaluation et résultats

Le taux de réponse correct est calculé en modifiant les données Vrai / Faux sur 1 ou 0 avec tf.cast.

accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_:mnist.test.labels}))

Recommended Posts

[Explication pour les débutants] Tutoriel TensorFlow MNIST (pour les débutants)
[Explication pour les débutants] Tutoriel TensorFlow Deep MNIST
Tutoriel TensorFlow MNIST pour les débutants en ML
Tutoriel TensorFlow -MNIST pour les débutants en ML
Réalisation du didacticiel TensorFlow MNIST pour débutants en ML
Traduction TensorFlow MNIST pour les débutants en ML
J'ai essayé le tutoriel MNIST de tensorflow pour les débutants.
[Traduisez approximativement le didacticiel TensorFlow en japonais] 1. MNIST pour les débutants en ML
Notes supplémentaires pour TensorFlow MNIST pour les débutants en ML
[Explication pour les débutants] Syntaxe et concept de base de TensorFlow
J'ai essayé le tutoriel TensorFlow (MNIST pour les débutants) sur Cloud9-Classification des images manuscrites-
[Explication pour les débutants] Introduction au traitement du pliage (expliqué dans TensorFlow)
[Explication pour les débutants] Introduction au traitement du pool (expliqué dans TensorFlow)
[Traduisez approximativement le didacticiel TensorFlow en japonais] 2. Deep MNIST pour les experts
Tutoriel du didacticiel TensorFlow
[Déprécié] Tutoriel pour débutant Chainer v1.24.0
TensorFlow Deep MNIST pour la traduction d'experts
J'ai essayé d'exécuter le didacticiel TensorFlow avec des commentaires (_TensorFlow_2_0_Introduction pour les débutants)
Tutoriel TensorFlow J'ai essayé MNIST 3rd
Résumé du tutoriel Django pour les débutants par les débutants ③ (Afficher)
Implémentation et description à l'aide de XGBoost pour les débutants
Les débutants lisent "Introduction à TensorFlow 2.0 pour les experts"
Résumé du tutoriel Django pour les débutants par les débutants ⑤ (test)
Résumé du tutoriel Django pour les débutants par les débutants ⑦ (Personnaliser l'administrateur)
Résumé du tutoriel Django pour les débutants par les débutants ⑥ (fichier statique)
Résumé du tutoriel Django pour les débutants par les débutants ② (Modèle, Admin)
Résumé du tutoriel Django pour les débutants par les débutants ① (création de projet ~)
Résumé du didacticiel Django pour les débutants par les débutants ④ (Vue générique)
Installation de TensorFlow sur Windows Easy pour les débutants en Python
Code pour TensorFlow MNIST débutant / expert avec commentaires japonais
[Français] Tutoriel officiel NumPy "NumPy: les bases absolues pour les débutants"
Paramètres Spacemacs (pour les débutants)
Manuel python pour les débutants
Création d'un programme de génération d'images MNIST par DCGAN (tutoriel tensorflow)
Activer le GPU pour tensorflow
Algorithme Dikstra pour les débutants
OpenCV pour les débutants en Python
[Pour les débutants] Résumé de l'entrée standard en Python (avec explication)
Méthode d'apprentissage TensorFlow pour les professionnels des arts libéraux et les débutants en Python
[Pour les débutants] J'ai essayé d'utiliser l'API Tensorflow Object Detection
Notes d'installation pour TensorFlow pour Windows
Flux d'apprentissage pour les débutants en Python
[Pour les débutants] kaggle exercice (merucari)
Distribution Linux recommandée pour les débutants
CNN (1) pour la classification des images (pour les débutants)
Construction de l'environnement Python3 (pour les débutants)
Vue d'ensemble de Docker (pour les débutants)
Python #function 2 pour les super débutants
Les bases de Seaborn pour les débutants ④ Pairplot
Grammaire de base Python pour les débutants
Pandas 100 coups pour les débutants en Python
Python #function 1 pour les super débutants
#List Python pour les super débutants
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
[Pour les débutants de Kaggle] Titanic (LightGBM)
Mémorandum de commande Linux [pour les débutants]
Essayez TensorFlow MNIST avec RNN
Raccourci Linux pratique (pour les débutants)
[Explication pour les débutants] Mécanisme de détection de visage OpenCV et pratique (détecter MultiScale)