(Cet article est une réécriture pour Qiita qui a été écrite à ici.)
L'ensemble de données de reconnaissance de caractères manuscrits est un ensemble de données bien connu.
Il est préparé pour pouvoir être utilisé à partir de diverses bibliothèques, mais à ce moment-là j'étais comme "je ne lis pas les fichiers de l'extérieur" (← je pense que maintenant, je ne comprends pas bien) ou le net J'étais confus parce qu'il y avait différentes façons de le lire même si je le recherchais, et je ne comprenais pas la relation.
J'ai pensé qu'il pourrait y avoir d'autres personnes comme ça, alors je l'ai écrit dans le but d'organiser l'information.
Nous partons de l'hypothèse que sklearn, tensorflow et pytorch sont installés. (J'ai utilisé Anaconda pour préparer l'environnement)
Tous les sklearn, tensorflow et pytorch ne sont pas nécessaires. Cela signifie expliquer chaque cas.
Le système d'exploitation est Mac OS X.
C'est un soi-disant jeu de données de reconnaissance de caractères manuscrits, mais il en existe deux similaires.
L'un est un ensemble de données pour la reconnaissance de caractères manuscrits qui est fourni avec l'installation de sklearn (incluse en standard).
Le second a été obtenu par une méthode autre que celle ci-dessus.
Le premier consiste en une image de 8x8 pixels.
Le second consiste en une image de 28x28 pixels.
Les deux ont été capturés en recherchant «reconnaissance de caractères manuscrits» ou «Mnist», et d'une manière ou d'une autre, l'atmosphère de l'image était la même, donc j'étais confus de différentes manières.
Le jeu de données standard sklearn peut être trouvé à:
/(Pièces qui diffèrent selon l'environnement)/lib/python3.7/site-packages/sklearn/datasets
Pour référence, reportez-vous à la structure des répertoires dans mon cas. (J'utilise Anaconda)
$ls /Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/sklearn/ //Afficher la liste des fichiers et répertoires spécifiés par le chemin
__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
Et si vous regardez le dossier des ensembles de données,
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
Il est devenu.
En plus de la reconnaissance de caractères manuscrits, des ensembles de données sont également disponibles ici.
De plus, allez plus loin dans le dossier.
$ 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
Vous trouverez ici les ensembles de données iris et boston_house_prices qui sont souvent cités dans les articles traitant de sklearn.
Bien que le code sur la page officielle de sklearn soit le même.
Le travail suivant est effectué en démarrant python à partir du terminal.
>>> from sklearn.datasets import load_digits
>>> import matplotlib.pyplot as plt
>>> digit=load_digits()
>>> digit.data.shape
(1797, 64) // (8×8=Stocké sous forme de matrice de 64 colonnes)
>>> 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()
Ensuite, l'écran suivant apparaîtra.
Les données originales de Mnist peuvent être trouvées ici [http://yann.lecun.com/exdb/mnist/).
Cependant, ce qui est disponible ici est un fichier binaire qui ne peut pas être utilisé tel quel.
Donc, je dois traiter les données sous une forme que je peux utiliser moi-même, mais comme je le verrai ci-dessous, Mnist est un ensemble de données très célèbre, c'est donc un outil qui est préparé pour pouvoir être utilisé immédiatement dans diverses bibliothèques. il y a.
Bien sûr, il semble y avoir un moyen de restaurer ces données binaires par elles-mêmes, mais je ne pouvais pas les suivre autant, et j'ai pensé que ce serait une bonne idée de passer du temps là-bas, donc je ne parlerai pas de cette méthode.
En regardant les articles sur le net, dans l'ancien article
from sklearn.datasets import fetch_mldata
Il y a un article qui dit, mais maintenant la page à laquelle vous essayez d'accéder n'est pas disponible, donc une erreur se produit.
Alors maintenant, il semble utiliser fetch_openml comme ci-dessous. (Solution d'erreur Scikit-learn (sklearn) fetch_mldata)
Ceci est également démarré à partir du terminal.
>>> import matplotlib.pyplot as plt //Il a peut-être déjà été importé du haut, mais pour le moment. Faites cela si vous ne l'avez pas encore importé.
>>> 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()
Comment entrer à partir du tutoriel tensorflow.
>>> from tensorflow.examples.tutorials.mnist import input_data
Il semble que je puisse le faire, mais dans mon cas, j'ai eu l'erreur suivante.
En conclusion, il semble que le dossier du tutoriel ne puisse pas être téléchargé lors de l'installation de tensorflow.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'tensorflow.examples.tutorials'
J'ai regardé le contenu du répertoire actuel.
$ls /Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/tensorflow_core/examples/
__init__.py __pycache__ saved_model
Il est devenu.
Je me suis référé à la page suivante.
Tout d'abord, accédez à la page github Tensorflow et téléchargez et décompressez le fichier zip n'importe où.
Il existe un dossier appelé tensorflow-master, il existe donc un dossier appelé tutorials à l'emplacement de tensorflow-master \ tensorflow \ examples .
Copiez ce dossier appelé turorials dans /Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/tensorflow_core/examples/.
Si possible jusqu'à présent
>>> import matplotlib.pyplot as plt //Il a peut-être déjà été importé du haut, mais pour le moment. Faites cela si vous ne l'avez pas encore importé.
>>> 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()
Si tel est le cas, l'image doit également être affichée.
>>> import matplotlib.pyplot as plt //Il a peut-être déjà été importé du haut, mais pour le moment. Faites cela si vous ne l'avez pas encore importé.
>>> 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'> //Il reviendra avec un taple.
>>> 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()
Je ne publierai plus l'image, mais j'espère qu'elle sera à nouveau affichée.
Tout d'abord, il semble que si vous ne pouvez pas faire cela, vous ne pouvez pas continuer,
>>> from torchvision.datasets import MNIST
J'ai eu l'erreur suivante. Il ne semble pas y avoir de vision de la torche.
Dans mon cas, quand je mets du pytorch en conda, je viens
conda install pytorch
Il semblait que je n'y suis allé.
Il semble faire comme suit pour inclure des accessoires.
conda install pytorch torchvision -c pytorch
Une confirmation vous sera demandée, alors appuyez sur y.
Après avoir effectué les opérations ci-dessus (si nécessaire), essayez d'exécuter un code similaire à ce qui suit.
>>> import matplotlib.pyplot as plt //Il a peut-être déjà été importé du haut, mais pour le moment. Faites cela si vous ne l'avez pas encore importé.
>>> 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 from scratch"] de O'Reilly (https://www.amazon.co.jp/%E3%82%BC%E3%83%AD%E3%81%8B%E3%82% 89% E4% BD% 9C% E3% 82% 8B Apprentissage profond-% 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) se fait indépendamment dans les fichiers fournis par ce livre.
Plus précisément, dans le dossier téléchargé depuis page github des fichiers utilisés dans "Deep Learning from scratch" Je vais tout lire. (Bien sûr, vous devez préparer python, numpy, etc. à l'avance.
Suivez les étapes ci-dessous.
Tout d'abord, téléchargez ou clonez le dossier à partir de la page Github mentionnée ci-dessus.
Ici, nous allons le télécharger. Puis décompressez-le.
Cela créera un dossier appelé deep-learning-from-scratch-master.
** Puisque chaque chapitre est divisé en dossiers, on a l'impression de passer au dossier de ce chapitre et de le lire. ** **
Le dossier lui-même provient de ch01, mais comme les données Mnist sont utilisées dans le chapitre 3, je vais les entrer dans ch03.
$ pwd
/Volumes/SONY_64GB/deep-learning-from-scratch-master/ch03
Démarrez python ...
>>> 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 → Une page avec les données originales de Mnist. Les données binaires peuvent être téléchargées ici.
sklearn
Page numérique de la documentation officielle de Sklearn (→ Cliquez sur l'ensemble de données en haut pour accéder à la page montrant les autres ensembles de données fournis par sklearn.)
Reconnaître les nombres manuscrits avec SVM de Scikit learn (Qiita) Solution d'erreur Scikit-learn (sklearn) fetch_mldata (Qiita)
Comprendre les spécifications des données MNIST
Gérez les données numériques manuscrites! Comment utiliser mnist avec Python [Pour les débutants]
7.5.3. Downloading datasets from the openml.org repository¶
Tensorflow
ModuleNotFoundError: Aucun module nommé'tensorflow.examples '(Stackoverflow) 5e réponse depuis le haut Page Github Tensorflow
Keras
Pytorch Essayez MNIST avec PyTorch conda install pytorch torchvision -c pytorch dit PackageNotFoundError: Dépendances manquantes dans les canaux osx-64 actuels: --pytorch-> mkl> = 2018
OpenML (en particulier la page de liste de données) ["Deep Learning from scratch"](https://www.amazon.co.jp/%E3%82%BC%E3%83%AD%E3%81%8B%E3%82%89%E4%BD % 9C% E3% 82% 8BApprentissage en profondeur-% 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) Page Github des fichiers utilisés dans "Deep Learning from scratch"
Recommended Posts