[PYTHON] Tutoriel TensorFlow J'ai essayé MNIST 3rd

J'ai essayé le Tutoriel officiel de TensorFlow

mnist_softmax Un programme qui estime les caractères manuscrits 60000 données d'entraînement 10000 données de test L'entrée est des données d'image 784 (28 * 28)

Entrer X lignes 784 colonnes 1 Poids Ligne W Numéro de données d'entraînement Colonne 784 Biais b ligne 10 colonnes 1 y = softmax (W ・ x + b)

Multiplication matricielle matmul()

fonction softmax

Pour exprimer l'établissement Le résultat de la classification est obtenu en fonction des données d'entrée Fonction d'activation avec la somme de toutes les sorties de 1 y1, y2 ... y10 (représentant la probabilité des nombres 0-9, respectivement)

La bonne réponse est représentée par 0 et 1

Trouvez le poids (w) et la polarisation (b) afin que les données d'étiquette et la sortie de softmax soient aussi proches que possible.

Entropie croisée

En tant que fonction de coût (erreur) Calculez l'écart entre la valeur estimée et l'étiquette de réponse correcte

Flux de programme

Lire les données du MNISR

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

Importer tensorflow

import tensorflow as tf

Paramètres d'entrée, de poids et de biais

Préparez un conteneur vide avec placeholder Variable variable

x = tf.placeholder(tf.float32, [None,784])

W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))

Sortie (softmax)

La sortie est de 10 éléments, pour un total de 1.

y = tf.nn.softmax(tf.matmul(x,W) + b)

Définition de l'étiquette de réponse correcte (données de l'enseignant)

Calculez la distance entre la différence entre y et y_ dans cross_entropy reduction_mean (moyenne) réduire la somme (total)

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

entraînement

Optimiser et mettre à jour les pondérations

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

Initialisation des données

sess = tf.InteractiveSession()

tf.global_variables_initializer().run()

Formation en batch

Entraînez-vous avec des données aléatoires pour 100 lots. Répétez 1000 fois. Extraire 100 données dans le train. sess.run(train_step, feed_dict={x: batch_xs, y_:batch_ys}) train_step Spécifié par SGD (méthode de descente de gradient) feed_dict = {x: batch_xs, y_: batch_ys} Source des données, x est x du lot, y est y du lot

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})

Évaluation

ʻEqualCompare la sortie avec l'étiquette correcte et renvoie Vrai et Faux. ʻArgmax (y, 1)Extrait le plus grand élément de sortie. reduction_mean Précision moyenne castVrai, Convertir False en nombre (ratio) Enfin évaluer avec des données de test

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

accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_ : mnist.test.labels}))

programme

Enfin, un résumé du flux jusqu'à présent est décrit.

mnist_softmax.py


# coding: utf-8
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

import tensorflow as tf

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)


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

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

sess = tf.InteractiveSession()

tf.global_variables_initializer().run()

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})

correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
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

Tutoriel TensorFlow J'ai essayé MNIST 3rd
J'ai essayé le tutoriel TensorFlow 1er
J'ai essayé le tutoriel TensorFlow 2ème
J'ai essayé le tutoriel MNIST de tensorflow pour les débutants.
Tutoriel TensorFlow J'ai essayé CNN 4th
J'ai essayé tensorflow pour la première fois
J'ai essayé d'exécuter le didacticiel TensorFlow avec des commentaires (_TensorFlow_2_0_Introduction pour les débutants)
J'ai essayé d'exécuter TensorFlow
Réalisation du didacticiel TensorFlow MNIST pour débutants en ML
J'ai essayé le tutoriel TensorFlow (MNIST pour les débutants) sur Cloud9-Classification des images manuscrites-
J'ai essayé la bibliothèque changefinder!
J'ai couru le tutoriel TensorFlow avec des commentaires (classification du texte des critiques de films)
63e jour, j'ai installé tensorflow.
J'ai essayé d'utiliser magenta / TensorFlow
J'ai essayé de porter le code écrit pour TensorFlow sur Theano
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
J'ai essayé de refactoriser le modèle CNN de TensorFlow en utilisant TF-Slim
[Pour les débutants] J'ai essayé d'utiliser l'API Tensorflow Object Detection
[Explication pour les débutants] Tutoriel TensorFlow MNIST (pour les débutants)
J'ai essayé le roman Naro API 2
Tutoriel TensorFlow MNIST pour les débutants en ML
J'ai essayé l'API du roman Naruro
J'ai essayé de déplacer le ballon
J'ai essayé d'utiliser l'API checkio
Tutoriel TensorFlow -MNIST pour les débutants en ML
J'ai essayé d'estimer la section.
Tutoriel du didacticiel TensorFlow
[Explication pour les débutants] Tutoriel TensorFlow Deep MNIST
J'ai essayé le serveur asynchrone de Django 3.0
J'ai essayé d'implémenter Autoencoder avec TensorFlow
J'ai essayé de résumer la commande umask
J'ai essayé de visualiser AutoEncoder avec TensorFlow
J'ai essayé de reconnaître le mot de réveil
J'ai essayé de jouer au jeu ○ ✕ en utilisant TensorFlow
J'ai essayé l'outil de visualisation OSS, sur-ensemble
J'ai essayé de classer le texte en utilisant TensorFlow
J'ai essayé de résumer la modélisation graphique.
J'ai essayé d'estimer le rapport de circonférence π de manière probabiliste
J'ai essayé de toucher l'API COTOHA
Python: j'ai essayé le problème du voyageur de commerce
J'ai essayé de jouer avec l'image avec Pillow
J'ai essayé le framework de test Python Tornado
J'ai essayé d'utiliser l'API BigQuery Storage
J'ai essayé de transformer l'image du visage en utilisant sparse_image_warp de TensorFlow Addons
J'ai essayé de "lisser" l'image avec Python + OpenCV
J'ai essayé Web Scraping pour analyser les paroles.
J'ai essayé la fonction de tableau croisé dynamique des pandas
[Python] J'ai essayé de remplacer le nom de la fonction par le nom de la fonction
J'ai essayé l'analyse par grappes de la carte météo
J'ai essayé d'accéder à l'API Qiita depuis le début
vprof - J'ai essayé d'utiliser le profileur pour Python
J'ai essayé de déplacer GAN (mnist) avec keras
J'ai essayé de "différencier" l'image avec Python + OpenCV
J'ai essayé de gratter
J'ai essayé d'optimiser le séchage du linge
J'ai essayé de sauvegarder les données avec discorde
J'ai essayé PyQ
J'ai essayé de simuler "Birthday Paradox" avec Python
J'ai essayé la méthode des moindres carrés en Python