[PYTHON] J'ai essayé le tutoriel MNIST de tensorflow pour les débutants.

Google a publié un outil d'apprentissage automatique "TensorFlow", j'ai donc immédiatement essayé un tutoriel.

Installez comme suit.

$ pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl

Jusqu'à présent, il semble ne prendre en charge que Python2, et lorsque j'ai essayé de l'installer également dans Python3, cela a échoué. Les dépendances telles que numpy sont également installées automatiquement.

Ci-dessous, j'ai essayé de l'implémenter en écrivant ce qui se trouve dans "MNIST For ML Beginners" sur le site officiel. (Notez que input_data n'est pas une fonction de tensorflow, mais celui de here est input_data. Doit être enregistré sous .py.)

# -*- coding : utf-8 -*-

import tensorflow as tf
import input_data

#acquisition de données mnist)
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

#Définissez un espace réservé pour avoir des informations d'entrée.
# shape(2ème argument)Si Aucun est spécifié pour la dimension de, n'importe quel nombre de dimensions de n'importe quelle longueur peut être pris en charge.
x = tf.placeholder("float", [None, 784])

#Définissez une variable qui contient des pondérations et des biais.
#La variable est une variable dont la valeur peut être modifiée par opération.
W = tf.Variable(tf.zeros([784, 10])) #Weight 784 Prend une entrée dimensionnelle et renvoie une sortie à 10 dimensions
b = tf.Variable(tf.zeros([10])) #Biais appliqué à la sortie en 10 dimensions

#Définissez un modèle de réseau neuronal.
#Produit matriciel de l'entrée x et du poids W(tf.matmul)Le biais b est ajouté à la sortie de, et la sortie finale est déterminée par softmax.
y = tf.nn.softmax(tf.matmul(x, W) + b)

#C'est la fin de la définition du modèle de réseau neuronal.
#Voici la mise en œuvre de la formation et de l'évaluation
# (Dans cet échantillon, nous apprenons en évaluant avec l'entropie croisée.)

#Données des enseignants(Bonne réponse)Définissez un espace réservé à conserver.
y_ = tf.placeholder("float", [None, 10])

#Définissez la formule de calcul de l'entropie croisée.
#Données de l'enseignant y_Et la logarithmique de la sortie y du modèle, et calculez la somme totale
cross_entropy = -tf.reduce_sum(y_ * tf.log(y))

#Définissez comment mettre à jour le modèle à chaque étape.
#0 pour chaque étape.Minimisez l'entropie croisée avec un taux de mise à jour de 01.
# (La méthode de propagation des erreurs est utilisée pour apprendre le réseau neuronal, mais cela semble être jugé par le modèle.)
# (Ici, y= tf.nn.softmax(...)Par conséquent, il semble que la méthode de propagation des erreurs en retour soit adoptée pour mettre à jour le réseau neuronal.)
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)

#Préparez-vous à initialiser toutes les variables.
init = tf.initialize_all_variables()

#Définissez une session et initialisez toutes les variables.
sess = tf.Session()
sess.run(init)

#Faire de la formation
#Transmettre les données mnist à Session pour l'entraînement_Mettez à jour le modèle en fonction de la définition de l'étape.
for i in range(1000):
	batch_xs, batch_ys = mnist.train.next_batch(100)
	sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

#Définissez une formule d'évaluation pour l'évaluation des performances.
#Modèle sortie y et données enseignant y pour les données d'entrée_Vérifiez s'ils correspondent.
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))

#Il est défini que l'évaluation finale des performances est déterminée par la valeur moyenne.
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))

#Évaluez les performances à l'aide des données de test et de leurs étiquettes.
print sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})

Ce que j'ai pensé de sa mise en œuvre était excellent en tant qu'outil d'apprentissage automatique, mais je pensais que c'était assez excellent en tant qu'outil d'analyse numérique. Impression que le calcul matriciel peut être facilement défini et que la vitesse de calcul est rapide. La mise en œuvre de la machine d'apprentissage est assez simple par rapport à d'autres bibliothèques, mais ce tutoriel à lui seul contient beaucoup de boîtes noires, ce qui m'a un peu inquiété. Certains tutoriels officiels concernent l'apprentissage en profondeur, alors j'aimerais également essayer cela.

Recommended Posts

J'ai essayé le tutoriel MNIST de tensorflow pour les débutants.
Tutoriel TensorFlow J'ai essayé MNIST 3rd
J'ai essayé le tutoriel TensorFlow (MNIST pour les débutants) sur Cloud9-Classification des images manuscrites-
Réalisation du didacticiel TensorFlow MNIST pour débutants en ML
J'ai essayé d'exécuter le didacticiel TensorFlow avec des commentaires (_TensorFlow_2_0_Introduction pour les débutants)
[Explication pour les débutants] Tutoriel TensorFlow MNIST (pour les débutants)
J'ai essayé le tutoriel TensorFlow 1er
J'ai essayé le tutoriel TensorFlow 2ème
Tutoriel TensorFlow MNIST pour les débutants en ML
Tutoriel TensorFlow -MNIST pour les débutants en ML
[Pour les débutants] J'ai essayé d'utiliser l'API Tensorflow Object Detection
[Explication pour les débutants] Tutoriel TensorFlow Deep MNIST
J'ai essayé tensorflow pour la première fois
J'ai couru le tutoriel TensorFlow avec des commentaires (classification du texte des critiques de films)
Tutoriel TensorFlow J'ai essayé CNN 4th
J'ai essayé de porter le code écrit pour TensorFlow sur Theano
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
[Traduisez approximativement le didacticiel TensorFlow en japonais] 1. MNIST pour les débutants en ML
J'ai essayé de refactoriser le modèle CNN de TensorFlow en utilisant TF-Slim
J'ai essayé le serveur asynchrone de Django 3.0
Notes supplémentaires pour TensorFlow MNIST pour les débutants en ML
J'ai essayé de transformer l'image du visage en utilisant sparse_image_warp de TensorFlow Addons
J'ai essayé la fonction de tableau croisé dynamique des pandas
J'ai essayé l'analyse par grappes de la carte météo
vprof - J'ai essayé d'utiliser le profileur pour Python
J'ai essayé la programmation python pour la première fois.
J'ai essayé de corriger la forme trapézoïdale de l'image
J'ai essayé Mind Meld pour la première fois
J'ai essayé d'utiliser le filtre d'image d'OpenCV
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
J'ai essayé d'exécuter TensorFlow
J'ai essayé de résumer les paramètres des différentes bases de données de Django (MySQL, PostgreSQL)
Visualisation de l'état de tir de la couche cachée du modèle appris dans le tutoriel TensorFlow MNIST
J'ai essayé la détection d'objets avec YOLO v3 (TensorFlow 2.1) sur le GPU de windows!
Je n'ai pas compris le redimensionnement de TensorFlow, alors je l'ai résumé visuellement.
J'ai essayé d'automatiser le travail de masquage du visage de l'image de coordination pour l'usure
[Français] Tutoriel officiel NumPy "NumPy: les bases absolues pour les débutants"
J'ai essayé Python sur Mac pour la première fois.
J'ai essayé de résumer la forme de base de GPLVM
J'ai essayé python pour la première fois avec heroku
J'ai essayé d'utiliser l'API de Sakenowa Data Project
J'ai essayé de visualiser les informations spacha de VTuber
J'ai essayé d'effacer la partie négative de Meros
J'ai essayé de gratter la publicité du site de dessin animé piraté
[Pour les débutants] Quantifier la similitude des phrases avec TF-IDF
AI Gaming Je l'ai essayé pour la première fois
J'ai essayé la méthode la plus simple de classification de documents multi-étiquettes
J'ai essayé de classer les voix des acteurs de la voix
J'ai recherché le contenu de l'agent CloudWatch Logs
J'ai essayé d'exécuter l'exemple de code du module Ansible
J'ai essayé de résumer les opérations de chaîne de Python
J'ai couru le tutoriel TensorFlow avec des commentaires (premier réseau de neurones: le début du problème de classification)
J'ai essayé la bibliothèque changefinder!
Vue d'ensemble de Docker (pour les débutants)
J'ai essayé d'utiliser magenta / TensorFlow
J'ai essayé de trouver l'entropie de l'image avec python