(Dieser Artikel ist eine Umschreibung für Qiita, die unter [hier] geschrieben wurde (https://erdeserdes.blogspot.com/2020/04/mnist.html).)
Handschriftliche Zeichenerkennungsdatensätze sind bekannte Datensätze.
Es ist so vorbereitet, dass es aus verschiedenen Bibliotheken verwendet werden kann, aber zu dieser Zeit dachte ich: "Ich lese keine Dateien von außen" (← Ich denke jetzt, ich verstehe nicht gut) oder aus dem Netz Selbst wenn ich es nachgeschlagen habe, gab es verschiedene Möglichkeiten, es zu lesen, und ich war verwirrt, weil ich die Beziehung nicht verstand.
Ich dachte, dass es andere Leute wie diese geben könnte, also schrieb ich es, um die Informationen zu organisieren.
Wir gehen davon aus, dass sklearn, tensorflow und pytorch installiert sind. (Ich habe Anaconda verwendet, um die Umgebung vorzubereiten)
Nicht alle sklearn, tensorflow und pytorch sind erforderlich. Es bedeutet, jeden Fall zu erklären.
Das Betriebssystem ist Mac OS X.
Es handelt sich um einen sogenannten handgeschriebenen Datensatz zur Zeichenerkennung, es gibt jedoch zwei ähnliche.
Einer ist der Datensatz für die handschriftliche Zeichenerkennung, der mit der sklearn-Installation geliefert wird (standardmäßig enthalten).
Das zweite wurde durch ein anderes Verfahren als das obige erhalten.
Das erste besteht aus einem 8x8-Pixel-Bild.
Das zweite besteht aus einem 28x28 Pixel großen Bild.
Beide wurden bei der Suche nach "handschriftlicher Zeichenerkennung" oder "Mnist" erwischt, und irgendwie war die Atmosphäre des Bildes dieselbe, so dass ich auf verschiedene Weise verwirrt war.
Der sklearn-Standarddatensatz finden Sie unter:
/(Teile, die je nach Umgebung unterschiedlich sind)/lib/python3.7/site-packages/sklearn/datasets
Als Referenz siehe die Verzeichnisstruktur in meinem Fall. (Ich benutze Anaconda)
$ls /Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/sklearn/ //Zeigen Sie die Liste der durch den Pfad angegebenen Dateien und Verzeichnisse an
__check_build dummy.py model_selection
__init__.py ensemble multiclass.py
__pycache__ exceptions.py multioutput.py
_build_utils experimental naive_bayes.py
_config.py externals neighbors
_distributor_init.py feature_extraction neural_network
_isotonic.cpython-37m-darwin.so feature_selection pipeline.py
base.py gaussian_process preprocessing
calibration.py impute random_projection.py
cluster inspection semi_supervised
compose isotonic.py setup.py
conftest.py kernel_approximation.py svm
covariance kernel_ridge.py tests
cross_decomposition linear_model tree
datasets manifold utils
decomposition metrics
discriminant_analysis.py mixture
Und wenn Sie sich den Datensatzordner darin ansehen,
s /Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/sklearn/datasets
__init__.py california_housing.py
__pycache__ covtype.py
_base.py data
_california_housing.py descr
_covtype.py images
_kddcup99.py kddcup99.py
_lfw.py lfw.py
_olivetti_faces.py olivetti_faces.py
_openml.py openml.py
_rcv1.py rcv1.py
_samples_generator.py samples_generator.py
_species_distributions.py setup.py
_svmlight_format_fast.cpython-37m-darwin.so species_distributions.py
_svmlight_format_io.py svmlight_format.py
_twenty_newsgroups.py tests
base.py twenty_newsgroups.py
Es ist geworden.
Neben der handschriftlichen Zeichenerkennung stehen hier auch Datensätze zur Verfügung.
Gehen Sie außerdem tiefer in den Ordner.
$ ls /Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/sklearn/datasets/data
boston_house_prices.csv diabetes_target.csv.gz linnerud_exercise.csv
breast_cancer.csv digits.csv.gz linnerud_physiological.csv
diabetes_data.csv.gz iris.csv wine_data.csv
Hier finden Sie die Datensätze iris und boston_house_prices, die häufig in Artikeln zum Thema sklearn zitiert werden.
Obwohl der Code auf der offiziellen Seite von sklearn der gleiche ist.
Die folgende Arbeit wird ausgeführt, indem Python vom Terminal aus gestartet wird.
>>> from sklearn.datasets import load_digits
>>> import matplotlib.pyplot as plt
>>> digit=load_digits()
>>> digit.data.shape
(1797, 64) // (8×8=Als 64-Spalten-Matrix gespeichert)
>>> plt.gray()
>>> digit.images[0]
array([[ 0., 0., 5., 13., 9., 1., 0., 0.],
[ 0., 0., 13., 15., 10., 15., 5., 0.],
[ 0., 3., 15., 2., 0., 11., 8., 0.],
[ 0., 4., 12., 0., 0., 8., 8., 0.],
[ 0., 5., 8., 0., 0., 9., 8., 0.],
[ 0., 4., 11., 0., 1., 12., 7., 0.],
[ 0., 2., 14., 5., 10., 12., 0., 0.],
[ 0., 0., 6., 13., 10., 0., 0., 0.]])
>>> plt.matshow(digit.images[0])
>>> plt.show()
Dann erscheint der folgende Bildschirm.
Mnist-Originaldaten finden Sie hier [http://yann.lecun.com/exdb/mnist/].
Hier ist jedoch eine Binärdatei verfügbar, die nicht unverändert verwendet werden kann.
Ich muss die Daten also zu einem Formular verarbeiten, das ich selbst verwenden kann. Wie wir weiter unten sehen werden, ist Mnist ein sehr bekannter Datensatz. Daher handelt es sich um ein Tool, das so vorbereitet ist, dass es sofort in verschiedenen Bibliotheken verwendet werden kann. es gibt.
Natürlich scheint es eine Möglichkeit zu geben, diese Binärdaten selbst wiederherzustellen, aber ich konnte ihr nicht so oft folgen, und ich dachte, es wäre eine gute Idee, einige Zeit dort zu verbringen, also werde ich diese Methode nicht ansprechen.
Schauen Sie sich die Artikel im Internet an, im alten Artikel
from sklearn.datasets import fetch_mldata
Es gibt einen Artikel, der besagt, aber jetzt ist die Seite, auf die Sie zugreifen möchten, nicht verfügbar, sodass ein Fehler auftritt.
Jetzt scheint es also fetch_openml wie unten zu verwenden. (Scikit-learn (sklearn) fetch_mldata-Fehlerlösung)
Dies wird auch vom Terminal aus gestartet.
>>> import matplotlib.pyplot as plt //Es wurde möglicherweise bereits von oben importiert, aber vorerst. Tun Sie dies, wenn Sie es noch nicht importiert haben.
>>> from sklearn.datasets import fetch_openml
>>> digits = fetch_openml(name='mnist_784', version=1)
>>> digits.data.shape
(70000, 784)
>>> plt.imshow(digits.data[0].reshape(28,28), cmap=plt.cm.gray_r)
<matplotlib.image.AxesImage object at 0x1a299dd850>
>>>>>> plt.show()
Eingabe aus dem Tensorflow-Tutorial.
>>> from tensorflow.examples.tutorials.mnist import input_data
Es scheint, dass ich es schaffen kann, aber in meinem Fall habe ich den folgenden Fehler erhalten.
Zusammenfassend scheint es, dass der Tutorial-Ordner bei der Installation von Tensorflow möglicherweise nicht heruntergeladen werden kann.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'tensorflow.examples.tutorials'
Ich habe mir den Inhalt des aktuellen Verzeichnisses angesehen.
$ls /Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/tensorflow_core/examples/
__init__.py __pycache__ saved_model
Es ist geworden.
Ich habe auf die folgende Seite verwiesen.
Gehen Sie zunächst zur Tensorflow-Github-Seite, laden Sie die Zip-Datei an eine beliebige Stelle herunter und entpacken Sie sie.
Es gibt einen Ordner namens Tensorflow-Master, also gibt es einen Ordner namens Tutorials am Speicherort von Tensorflow-Master \ Tensorflow \ Beispiele .
Kopieren Sie diesen Ordner mit dem Namen turorials in /Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/tensorflow_core/examples/.
Wenn möglich soweit
>>> import matplotlib.pyplot as plt //Es wurde möglicherweise bereits von oben importiert, aber vorerst. Tun Sie dies, wenn Sie es noch nicht importiert haben.
>>> from tensorflow.examples.tutorials.mnist import input_data
>>> mnist = input_data.read_data_sets("MNIST_data", one_hot=True)
>>> im = mnist.train.images[1]
>>> im = im.reshape(-1, 28)
>>> plt.imshow(im)
<matplotlib.image.AxesImage object at 0x64a4ee450>
>>> plt.show()
In diesem Fall sollte auch das Bild angezeigt werden.
>>> import matplotlib.pyplot as plt //Es wurde möglicherweise bereits von oben importiert, aber vorerst. Tun Sie dies, wenn Sie es noch nicht importiert haben.
>>> import tensorflow as tf
>>> mnist = tf.keras.datasets.mnist
>>> mnist
>>> mnist_data = mnist.load_data()
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz
11493376/11490434 [==============================] - 1s 0us/step
>>> type(mnist_data[0])
<class 'tuple'> //Es wird mit einem Taple zurückkommen.
>>> len(mnist_data[0])
2
>>> len(mnist_data[0][0])
60000
>>> len(mnist_data[0][0][1])
28
>>> mnist_data[0][0][1].shape
(28, 28)
>>> plt.imshow(mnist_data[0][0][1],cmap=plt.cm.gray_r)
<matplotlib.image.AxesImage object at 0x642398550>
>>> plt.show()
Ich werde das Bild nicht mehr posten, aber hoffentlich wird es wieder angezeigt.
Zunächst scheint es, dass, wenn Sie dies nicht tun können, Sie nicht fortfahren können,
>>> from torchvision.datasets import MNIST
Ich habe den folgenden Fehler erhalten. Es scheint keine Fackelsicht zu geben.
In meinem Fall, wenn ich Pytorch in Conda stecke, habe ich gerade
conda install pytorch
Es schien, dass ich nur dorthin ging.
Es scheint wie folgt zu tun, um Zubehör einzuschließen.
conda install pytorch torchvision -c pytorch
Sie werden zur Bestätigung aufgefordert, drücken Sie also y.
Versuchen Sie anschließend (falls erforderlich), Code ähnlich dem folgenden auszuführen.
>>> import matplotlib.pyplot as plt //Es wurde möglicherweise bereits von oben importiert, aber vorerst. Tun Sie dies, wenn Sie es noch nicht importiert haben.
>>> import torchvision.transforms as transforms
>>> from torch.utils.data import DataLoader
>>> from torchvision.datasets import MNIST
>>> mnist_data = MNIST('~/tmp/mnist', train=True, download=True, transform=transforms.ToTensor())
>>> data_loader = DataLoader(mnist_data,batch_size=4,shuffle=False)
>>> data_iter = iter(data_loader)
>>> images, labels = data_iter.next()
>>> npimg = images[0].numpy()
>>> npimg = npimg.reshape((28, 28))
>>> plt.imshow(npimg, cmap='gray')
<matplotlib.image.AxesImage object at 0x12c841810>
>>plt.show()
["Deep Learning von Grund auf neu"] von O'Reilly (https://www.amazon.co.jp/%E3%82%BC%E3%83%AD%E3%81%8B%E3%82% 89% E4% BD% 9C% E3% 82% 8BDeep-Learning-% E2% 80% 95Python% E3% 81% A7% E5% AD% A6% E3% 81% B6% E3% 83% 87% E3% 82 % A3% E3% 83% BC% E3% 83% 97% E3% 83% A9% E3% 83% BC% E3% 83% 8B% E3% 83% B3% E3% 82% B0% E3% 81% AE % E7% 90% 86% E8% AB% 96% E3% 81% A8% E5% AE% 9F% E8% A3% 85-% E6% 96% 8E% E8% 97% A4-% E5% BA% B7 % E6% AF% 85 / dp / 4873117585) erfolgt unabhängig in den in diesem Buch bereitgestellten Dateien.
Insbesondere in dem Ordner, der von der [Github-Seite der in "Deep Learning von Grund auf neu" verwendeten Dateien] heruntergeladen wurde (https://github.com/oreilly-japan/deep-learning-from-scratch) Ich werde alles lesen. (Natürlich müssen Sie Python, Numpy usw. im Voraus vorbereiten.
Folgen Sie den unteren Schritten.
Laden Sie zunächst den Ordner von der oben genannten Github-Seite herunter oder klonen Sie ihn.
Hier werden wir es herunterladen. Dann entpacken Sie es.
Dadurch wird ein Ordner namens Deep-Learning-from-Scratch-Master erstellt.
** Da jedes Kapitel in Ordner unterteilt ist, möchten Sie in den Ordner dieses Kapitels wechseln und lesen. ** ** **
Der Ordner selbst stammt aus ch01, aber da Mnist-Daten in Kapitel 3 verwendet werden, werde ich sie in ch03 eingeben.
$ pwd
/Volumes/SONY_64GB/deep-learning-from-scratch-master/ch03
Python starten ...
>>> import sys,os
>>> sys.path.append(os.pardir)
>>> from dataset.mnist import load_mnist
>>> (x_train,t_train),(x_test,t_test) = load_mnist(flatten=True,normalize=False)
Downloading train-images-idx3-ubyte.gz ...
Done
Downloading train-labels-idx1-ubyte.gz ...
Done
Downloading t10k-images-idx3-ubyte.gz ...
Done
Downloading t10k-labels-idx1-ubyte.gz ...
Done
Converting train-images-idx3-ubyte.gz to NumPy Array ...
Done
Converting train-labels-idx1-ubyte.gz to NumPy Array ...
Done
Converting t10k-images-idx3-ubyte.gz to NumPy Array ...
Done
Converting t10k-labels-idx1-ubyte.gz to NumPy Array ...
Done
Creating pickle file ...
Done!
>>> print(x_train.shape)
(60000, 784)
>>> print(t_train.shape)
(60000,)
>>> print(x_test.shape)
(10000, 784)
>>> print(t_test.shape)
(10000,)
>>>
MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges → Eine Seite mit den Originaldaten von Mnist. Binärdaten können hier heruntergeladen werden.
sklearn
Ziffernseite der offiziellen Dokumentation von sklearn (→ Klicken Sie oben auf den Datensatz, um zu der Seite zu gelangen, auf der angezeigt wird, mit welchen anderen Datensätzen sklearn standardmäßig geliefert wird.)
Erkennen handgeschriebener Zahlen mit SVM von Scikit learn (Qiita) Scikit-learn (sklearn) fetch_mldata-Fehlerlösung (Qiita)
Verständnis der Spezifikationen von MNIST-Daten
Handschriftliche Nummerndaten verarbeiten! Verwendung von mnist mit Python [Für Anfänger]
7.5.3. Downloading datasets from the openml.org repository¶
Tensorflow
Grundlegende Verwendung von TensorFlow, Keras (Modellbau / Training / Evaluierung / Vorhersage)
ModuleNotFoundError: Kein Modul mit dem Namen'tensorflow.examples '(Stackoverflow) 5. Antwort von oben Tensorflow Github-Seite
Keras
Grundlegende Verwendung von TensorFlow, Keras (Modellbau / Training / Evaluierung / Vorhersage)
Pytorch Versuchen Sie MNIST mit PyTorch conda install pytorch torchvision -c pytorch sagt PackageNotFoundError: Abhängigkeiten fehlen in aktuellen osx-64-Kanälen: --pytorch-> mkl> = 2018
OpenML (insbesondere die Datenlistenseite) ["Deep Learning von Grund auf neu"](https://www.amazon.co.jp/%E3%82%BC%E3%83%AD%E3%81%8B%E3%82%89%E4%BD % 9C% E3% 82% 8BDeep-Learning-% E2% 80% 95Python% E3% 81% A7% E5% AD% A6% E3% 81% B6% E3% 83% 87% E3% 82% A3% E3% 83% BC% E3% 83% 97% E3% 83% A9% E3% 83% BC% E3% 83% 8B% E3% 83% B3% E3% 82% B0% E3% 81% AE% E7% 90% 86% E8% AB% 96% E3% 81% A8% E5% AE% 9F% E8% A3% 85-% E6% 96% 8E% E8% 97% A4-% E5% BA% B7% E6% AF% 85 / dp / 4873117585) Github-Seite mit Dateien, die in "Deep Learning von Grund auf neu" verwendet werden
Recommended Posts