TensorFlow Tutorial (MNIST-Daten-Download) https://www.tensorflow.org/versions/master/tutorials/mnist/download/index.html#mnist-data-download Es ist eine Übersetzung von. Wir freuen uns darauf, auf Übersetzungsfehler hinzuweisen.
Code: tensorflow / examples / tutorials / mnist /
In diesem Lernprogramm erfahren Sie, wie Sie die Datensatzdateien herunterladen, die zum Klassifizieren handgeschriebener Zahlen mithilfe des (klassischen) MNIST-Datensatzes erforderlich sind.
In diesem Tutorial beziehen wir uns auf die folgenden Dateien:
Datei | Zweck |
---|---|
input_data.py | Code zum Herunterladen des MNIST-Datensatzes zur Schulung und Bewertung. |
MNIST ist ein klassisches Problem beim maschinellen Lernen. Das Problem besteht darin, ein 28 x 28 Pixel großes Graustufenbild handgeschriebener Zahlen zu betrachten und zu bestimmen, welche der Zahlen 0 bis 9 das Bild darstellt.
Weitere Informationen finden Sie auf der MNIST-Seite von Yann LeCun (http://yann.lecun.com/exdb/mnist/) oder in der MNIST-Visualisierung von Chris Olah (http://colah.github.io/posts/). Siehe 2014-10-Visualizing-MNIST /).
Auf der Yann LeCun MNIST-Seite (http://yann.lecun.com/exdb/mnist/) werden Schulungs- und Testdaten zum Download bereitgestellt.
Datei | Zweck |
---|---|
train-images-idx3-ubyte.gz | Trainingsset Bild-55000 Trainingsbilder, 5000 Verifizierungsbilder |
train-labels-idx1-ubyte.gz | Trainingsset-Etikett entsprechend dem Bild |
t10k-images-idx3-ubyte.gz | Test Set Bild-10000 Bilder |
t10k-labels-idx1-ubyte.gz | Testset-Etikett entsprechend dem Bild |
Die Funktion Maybe_download () in der Datei input_data.py stellt sicher, dass diese Dateien zum Training in den lokalen Datenordner heruntergeladen wurden.
Der Ordnername wird durch eine Flag-Variable am Anfang der Datei full_connected_feed.py angegeben und kann nach Bedarf geändert werden.
Die Datei selbst liegt nicht im Standardbildformat vor, sondern wird manuell (gemäß den Anweisungen auf der Website) mit den Funktionen extract_images () und extract_labels () in input_data.py entpackt.
Die Bilddaten werden in einen 2D-Tensor von [Bildindex, Pixelindex] extrahiert. Hier ist jedes Element der Helligkeitswert des Pixels in dem durch den Index angegebenen Bild, neu skaliert von [0, 255] auf [-0,5, 0,5]. Der "Bildindex" entspricht den Bildern im Datensatz und zählt von 0 bis zur Größe des Datensatzes. Und der "Pixelindex" entspricht einem bestimmten Pixel im Bild und reicht von 0 bis zur Anzahl der Pixel im Bild.
Die 60000 Proben in der train- * Datei werden dann in 55000 Proben für das Training und 5000 Proben für die Validierung aufgeteilt. Die Bildgröße aller 28 x 28 Pixel-Graustufenbilder im Datensatz beträgt 784, sodass die Ausgabe-Tensorform für das Trainingssatzbild [55000, 784] beträgt.
Die Etikettendaten werden in einen 1D-Tensor des Bildindex extrahiert, der durch die Klassenkennung jeder Probe bewertet wird. Daher ist für das Trainingssatzetikett die Form des Tensors [55000].
Der zugrunde liegende Code lädt Bilder und Beschriftungen für die folgenden Datensätze herunter, entpackt sie und formt sie neu:
Datensatz | Zweck |
---|---|
data_sets.train | 55000 Bilder und Etiketten für das Haupttraining. |
data_sets.validation | 5000 Bilder und Etiketten zur iterativen Überprüfung der Trainingsgenauigkeit. |
data_sets.test | 10000 Bilder und Etiketten für den endgültigen Test der trainierten Genauigkeit. |
Die Funktion read_data_sets () gibt ein Wörterbuch zurück, das eine DataSet-Instanz für jedes dieser drei Datasets enthält. Die DataSet.next_batch () -Methode wird verwendet, um ein Tupel von Bildern in Batchgröße und eine Liste von Beschriftungen abzurufen. Diese Listen werden einer laufenden TensorFlow-Sitzung zugeführt.
images_feed, labels_feed = data_set.next_batch(FLAGS.batch_size)
Recommended Posts