[PYTHON] [Erklärung für Anfänger] TensorFlow-Tutorial MNIST (für Anfänger)

TensorFlow Anfänger Tutorial

Ich habe das TensorFlow-Anfänger-Tutorial MNIST für ML-Anfänger ausgeführt. Ich bin Absolvent der Freien Künste und ** Tensor Flow zum ersten Mal ** und im Gegenteil ** Deep Learning zum ersten Mal **. Außerdem ** habe ich kaum maschinelles Lernen gemacht **. Informationen zu mathematischen Kenntnissen finden Sie im Artikel Wie man Mathematik für Absolventen der Freien Künste studiert, um Statistik und maschinelles Lernen zu verstehen. Es wird aus der Perspektive von Anfängern erklärt. Es gibt viele Teile, denen es an Genauigkeit mangelt, aber ich lege Wert auf Klarheit.

Referenzlink

Übersicht über MNIST für ML-Anfänger

Das Umrissdiagramm ist wie folgt. 00.Overview.JPG

1. Aus Bildern lernen und Antwortdaten korrigieren

MNIST-Datenbank (modifizierte Datenbank des Nationalen Instituts für Standards und Technologie) ist ein Satz handgeschriebener numerischer Bilder und korrekter Daten, die angeben, welche numerischen Werte jedes Bild angibt. es gibt. Lesen Sie diese Daten und erfahren Sie, welche Art von Bild zurückgegeben werden soll.

2. Modellgenerierung

Erstellen Sie als Ergebnis von "1. Aus Bildern lernen und Antwortdaten korrigieren" eine Modellformel. Intern erstellen wir ein Modell mit diesem Bild (0 wird als Beispiel genommen). 00.Overview02.JPG

3. Bewertung der Lernergebnisse

Berechnen Sie, wie viel die richtige Antwortrate vom generierten Modell erhalten wird.

MNIST Für ML-Anfänger Ausführungsverfahren

Ausführungsumgebung

Die Ausführungsumgebung ist in der folgenden Abbildung dargestellt. Ich laufe von einem Jupyter-Notizbuch. TensorFlowEnvironment.JPG

1. Starten Sie Jupyter Notebook

Anaconda Navigator wird über das Windows-Menü gestartet. Starten Sie dann Jupyter Notebook über Anaconda Navigator. 10.LaunchJupyterNotebook01.JPG

10.LaunchJupyterNotebook02.JPG

Benennen Sie die Datei in Jupyter Notebook um. 10.LaunchJupyterNotebook03.JPG

10.LaunchJupyterNotebook04.JPG

2. Führen Sie das Tutorial aus

Alles was Sie tun müssen, ist das Tutorial auszuführen. Drücken Sie Umschalt + Eingabetaste, um den Befehl auszuführen (Eingabetaste allein ist nur ein Zeilenumbruch). 20.RunMNIST01.JPG 20.RunMNIST02.JPG Die letzte "0,9178" ist die Bewertung des Lernergebnisses, was bedeutet, dass die korrekte Antwortrate etwa 92% beträgt. 3.Computational Graph Wenn Sie Computational Graph (Berechnungsformel-Diagramm) mit TensorBoard ausgeben, sieht es so aus. Weitere Informationen finden Sie im Artikel "TensorFlow Tutorial MNIST (für Anfänger), visualisiert mit TensorBoard". 40.TensorBoard01.JPG

Erläuterung der einzelnen Befehle

0. Übersicht

MNIST interpretiert handgeschriebene Zahlen von 0 bis 9 als 28-Punkt-Quadratdaten. MNIST Die Erklärung in diesem Artikel wäre jedoch kompliziert. Daher werden wir die beiden Arten handgeschriebener Daten, den vertikalen Balken (|) und den horizontalen Balken (-), durch quadratische 5-Punkt-Daten ersetzen. Dann sieht es aus wie in der Abbildung unten. 30.Modeling01.JPG

1. MNIST-Datenimport

MINST-Daten importieren. Wenn Sie "one_hot = True" setzen, bedeutet dies, dass die Daten nicht importiert werden, wenn sie bereits lokal vorhanden sind.

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

2. Laden Sie die TensorFlow-Bibliothek

import tensorflow as tf

3. Modelldefinition

Definieren Sie drei Variablen und ein Regressionsmodell. x: Variable zum Setzen des Bildes eines handgeschriebenen numerischen Werts W: Variable zum Setzen des Gewichtungswerts b: Variable zum Setzen des Bias-Werts

Wenn Sie das Obige mit einem 5-Punkt-Quadrat-Modell für vertikale und horizontale Balken erklären, sieht es so aus (der Bias-Wert von b ist eine Anpassungsvariable und ist in der Abbildung nicht enthalten). Das Modell ist so definiert, dass es mit dem Wert von $ x * W + b $ bewertet werden kann. Stellen Sie sich "tf.nn.softmax" (Softmax-Funktion) als numerische Konvertierung zur Auswertung vor. 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. Definition der richtigen Variablen

Definieren Sie hier die Speichervariable der richtigen Antwortdaten (Bild xx ist der numerische Wert xx).

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

5. Definition der Kreuzentropie

Definition von Kreuzentropie (Kreuzentropie). Die gekreuzte Entropie ist die Differenz zwischen den vorhergesagten und den tatsächlichen Werten.

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

6. Definition der Trainingsmethode

Trainiere mit dem "tf.train.GradientDescentOptimizer".

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

7. Sitzungsgenerierung und Variableninitialisierung

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

8. Durchführung des Trainings

Wiederholen Sie das Training 1000 Mal mit 100 zufälligen Daten.

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. Bewertung

Hier werden der vorhergesagte Wert und die richtige Antwort abgeglichen. rect_prediction enthält Daten als True / False. tf.argmax dient zum Extrahieren des größten Wertes in den Daten (korrekter numerischer Wert). Verwenden Sie tf.argmax, um die Zahl mit der höchsten Wahrscheinlichkeit auszugeben (Bewertungswert y).

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

10. Auswertungsberechnung und Ausgabe

Die richtige Antwortrate wird berechnet, indem die True / False-Daten mit tf.cast auf 1 oder 0 geändert werden.

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

[Erklärung für Anfänger] TensorFlow-Tutorial MNIST (für Anfänger)
[Erklärung für Anfänger] TensorFlow-Tutorial Deep MNIST
TensorFlow Tutorial MNIST Für ML-Anfänger
TensorFlow Tutorial -MNIST Für ML-Anfänger
Durchführen des TensorFlow MNIST für ML-Anfänger-Tutorials
TensorFlow MNIST Für ML Anfänger Übersetzung
Ich habe das MNIST-Tutorial von tensorflow für Anfänger ausprobiert.
[Übersetzen Sie das TensorFlow-Tutorial grob ins Japanische] 1. MNIST für ML-Anfänger
Ergänzende Hinweise zu TensorFlow MNIST für ML-Anfänger
[Erklärung für Anfänger] Grundlegende Syntax und Konzept von TensorFlow
Ich habe das TensorFlow-Tutorial (MNIST für Anfänger) zur Cloud9-Klassifizierung handgeschriebener Bilder ausprobiert.
[Erklärung für Anfänger] Einführung in die Faltverarbeitung (erklärt in TensorFlow)
[Erklärung für Anfänger] Einführung in die Pooling-Verarbeitung (erklärt in TensorFlow)
[Übersetzen Sie das TensorFlow-Tutorial grob ins Japanische] 2. Deep MNIST For Experts
TensorFlow Tutorial Tutorial
[Veraltet] Chainer v1.24.0 Anfänger-Tutorial
TensorFlow Deep MNIST für Expertenübersetzung
Ich habe versucht, das TensorFlow-Tutorial mit Kommentaren auszuführen (_TensorFlow_2_0_Einführung für Anfänger).
TensorFlow Tutorial Ich habe MNIST 3rd ausprobiert
Django Tutorial Zusammenfassung für Anfänger von Anfängern ③ (Anzeigen)
Implementierung und Beschreibung mit XGBoost für Anfänger
Anfänger lesen "Einführung in TensorFlow 2.0 für Experten"
Django Tutorial Zusammenfassung für Anfänger von Anfängern ⑤ (Test)
Django Tutorial Zusammenfassung für Anfänger von Anfängern ⑦ (Customize Admin)
Django Tutorial Zusammenfassung für Anfänger von Anfängern ⑥ (statische Datei)
Django Tutorial Zusammenfassung für Anfänger von Anfängern ② (Model, Admin)
Django Tutorial Zusammenfassung für Anfänger von Anfängern ① (Projekterstellung ~)
Django Tutorial Zusammenfassung für Anfänger von Anfängern ④ (Generic View)
Installieren von TensorFlow unter Windows Easy für Python-Anfänger
Code für TensorFlow MNIST Anfänger / Experte mit japanischen Kommentaren
[Übersetzung] NumPy Official Tutorial "NumPy: die absoluten Grundlagen für Anfänger"
Spacemacs-Einstellungen (für Anfänger)
Python Lehrbuch für Anfänger
Erstellung eines MNIST-Bilderzeugungsprogramms durch DCGAN (Tensorflow-Tutorial)
Aktivieren Sie die GPU für den Tensorflow
Dikstra-Algorithmus für Anfänger
OpenCV für Python-Anfänger
[Für Anfänger] Zusammenfassung der Standardeingabe in Python (mit Erklärung)
TensorFlow-Lernmethode für Profis der freien Künste und Python-Anfänger
[Für Anfänger] Ich habe versucht, die Tensorflow-Objekterkennungs-API zu verwenden
Installationshinweise für TensorFlow für Windows
Lernablauf für Python-Anfänger
[Für Anfänger] Kaggle-Übung (Merucari)
Empfohlene Linux-Distribution für Anfänger
CNN (1) zur Bildklassifizierung (für Anfänger)
Python3-Umgebungskonstruktion (für Anfänger)
Übersicht über Docker (für Anfänger)
Python #Funktion 2 für Super-Anfänger
Seaborn Basics für Anfänger ④ Pairplot
Grundlegende Python-Grammatik für Anfänger
100 Pandas klopfen für Python-Anfänger
Python #Funktion 1 für Super-Anfänger
Python #Liste für Super-Anfänger
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
[Für Kaggle-Anfänger] Titanic (LightGBM)
Linux Command Memorandum [für Anfänger]
Versuchen Sie TensorFlow MNIST mit RNN
Praktische Linux-Verknüpfung (für Anfänger)
[Erklärung für Anfänger] OpenCV-Gesichtserkennungsmechanismus und -praxis (MultiScale erkennen)