Zusammenfassung der Verwendung von MNIST mit Python

Update 2020/2

Der Inhalt ist etwas veraltet, deshalb habe ich ihn in meinem persönlichen Blog umgeschrieben. https://kakedashi-engineer.appspot.com/2020/02/10/mnist/

Was ist MNIST?

Überblick

MNIST ist ein handgeschriebener 28 x 28 Pixel-Nummerndatensatz. Menschen im Bereich Deep Learning verwenden es vorerst häufig als Benchmark.

Jedes Pixel nimmt einen ganzzahligen Wert von 0 bis 255 an. Insgesamt gibt es 70.000 Bilder, von denen 60.000 Trainingsdaten und 10.000 Testdaten sind. Der Punkt ist, dass Trainingsdaten und Testdaten von Anfang an getrennt sind. Ich benutze das manchmal so wie es ist, Von den Trainingsdaten können 10.000 von hinten als Validierungsdaten verwendet werden. (Was sind Validierungsdaten? Lassen Sie uns Google vorzeitig stoppen)

Datenreihenfolge

Die Daten sind nicht für jede Klasse angeordnet Zum Beispiel Trainingsdaten

[5 0 4 ..., 8 4 8]

Die Bestellung ist nicht regelmäßig.

Prozentsatz jeder Zahl

Eine Sache zu beachten ist das Verhältnis jeder Zahl. Natürlich dachte ich, dass jede Zahl 6000 + 1000 war, aber als ich sie nachschlug, schien es anders zu sein. Das Bild von "1" ist 24% mehr als das Bild von "5" ...

    0      1     2       3      4      5      6      7      8      9
[ 5923.  6742.  5958.  6131.  5842.  5421.  5918.  6265.  5851.  5949.] # training data
[  980.  1135.  1032.  1010.   982.   892.   958.  1028.   974.  1009.] # test data
[ 6903.  7877.  6990.  7141.  6824.  6313.  6876.  7293.  6825.  6958.] # training data + test data

Normalisierung

Es gibt noch etwas zu beachten. Die Anzahl der Pixel in den Ecken eines Bildes kann in jedem der 70.000 Bilder 0 sein. Wenn Sie versuchen, eine Normalisierung Pixel für Pixel durchzuführen, tritt daher eine Nullteilung auf. Im Beispielcode usw. scheint es üblich zu sein, durch 255.0 auf einmal mit numpy usw. zu teilen.

Die Einführung ist länger geworden. Als nächstes werde ich kurz vorstellen, wie MNIST mit Python verwendet wird.

1. DIE MNIST-DATENBANK handgeschriebener Ziffern (Hauptfamilie)

Es kann von der Homepage von Yann Le Cun et al.

train-images-idx3-ubyte.gz: training set images (9912422 bytes) train-labels-idx1-ubyte.gz: training set labels (28881 bytes) t10k-images-idx3-ubyte.gz: test set images (1648877 bytes) t10k-labels-idx1-ubyte.gz: test set labels (4542 bytes)

Da es sich um Binärdaten und nicht um Textdaten handelt, werden sie nach entsprechender Verarbeitung verwendet. Wie Sie sehen können, ist es in Trainingsdaten und Testdaten unterteilt, und auch die Bezeichnungen sind unterschiedlich. Übrigens, da das Label ein ganzzahliger Wert von 0 bis 9 ist, denke ich, dass viele Leute es in 1-of-K ausdrücken möchten. In diesem Fall wird sklearn.preprocessing.LabelBinarizer empfohlen.

  1. sklearn

Mit sklearn müssen Sie nicht herunterladen, und Sie können die folgenden Benchmarks problemlos aufrufen.

python


from sklearn.datasets import *
load_boston() 	
load_iris() 	
load_diabetes() 	
load_digits([n_class])
load_linnerud()

Aber nicht nur das, aus einem Repository für maschinelles Lernen namens mldata.org Sie können die Daten auch herunterladen. Hier gibt es auch MNIST. Das Herunterladen dauert einige Zeit, da die Daten schwer sind. Nach dem Herunterladen wird es in data_home gespeichert, sodass Sie das zweite Mal nicht so lange warten müssen.

python


from sklearn.datasets import fetch_mldata
mnist = fetch_mldata('MNIST original', data_home=custom_data_home)

Sehr einfach zu bedienen.

3. Andere

Bibliotheken wie TensorFlow und Theano scheinen ihre eigenen Funktionen zum Herunterladen von MNIST zu haben. Wenn Sie sich den Beispielcode ansehen, können Sie sehen, wie er verwendet wird. Es scheint, dass Chainer sklearn verwendet.

Recommended Posts

Zusammenfassung der Verwendung von MNIST mit Python
[Python] Zusammenfassung der Verwendung von Pandas
[Python2.7] Zusammenfassung der Verwendung von unittest
Zusammenfassung der Verwendung der Python-Liste
[Python2.7] Zusammenfassung der Verwendung des Unterprozesses
Zusammenfassung zum Importieren von Dateien in Python 3
Zusammenfassung der Verwendung von pandas.DataFrame.loc
Verwendung von SQLite in Python
Zusammenfassung der Verwendung von pyenv-virtualenv
Wie man MySQL mit Python benutzt
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Zusammenfassung der Verwendung von csvkit
[Einführung in Python] Wie verwende ich eine Klasse in Python?
[Python] Zusammenfassung der Verwendung von Split- und Join-Funktionen
Vergleich der Verwendung von Funktionen höherer Ordnung in Python 2 und 3
Verwendung von __slots__ in der Python-Klasse
Verwendung regulärer Ausdrücke in Python
Verwendung ist und == in Python
[Frage] Wie verwende ich plot_surface von Python?
Verwendung der C-Bibliothek in Python
[Python] Verwendung von zwei Arten von type ()
Verwendung der Python-Bildbibliothek in der Python3-Serie
Wie man tkinter mit Python in Pyenv benutzt
Zusammenfassung des Studiums von Python zur Verwendung von AWS Lambda
[Python] Verwendung von Liste 1
Wie benutzt man Python Argparse?
Python: Wie man pydub benutzt
[Python] Verwendung von checkio
Wie man in Python entwickelt
[Python] Verwendung von input ()
Wie benutzt man Python Lambda?
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
Verwendung von Python-Bytes
[Für Anfänger] Wie man den Befehl say mit Python benutzt!
Zusammenfassung der Tools, die zum Analysieren von Daten in Python benötigt werden
So ermitteln Sie die Anzahl der Stellen in Python
Ich habe versucht zusammenzufassen, wie man Matplotlib von Python verwendet
Verwendung von Python Kivy ~ ~ Grundlagen der Kv-Sprache ~
Ich habe versucht zusammenzufassen, wie man Pandas von Python benutzt
[Python] Zusammenfassung, wie die Farbe der Figur angegeben wird
Verwendung des in Lobe in Python erlernten Modells
[Python] Wie man PCA mit Python macht
Python: So verwenden Sie Async mit
Verwendung von Klassen in Theano
So sammeln Sie Bilder in Python
Verwendung von Anfragen (Python Library)
[Python] Verwendung von Liste 3 Hinzugefügt
Verwendung der Python-API von OpenPose
So verpacken Sie C in Python
Python: Verwendung von pydub (Wiedergabe)
Verwendung der Zip-Funktion von Python
Umgang mit Japanisch mit Python
[Python] Verwendung der Typetalk-API
[Python] Zusammenfassung zum Abrufen von Listen und Wörterbuchelementen
Verwendung der Methode __call__ in der Python-Klasse
[Einführung in die Udemy Python3 + -Anwendung] 36. Verwendung von In und Not
So entwickeln Sie in einer virtuellen Python-Umgebung [Memo]