[PYTHON] Apprendre en profondeur à partir des bases mathématiques Partie 2 (pendant la fréquentation)

Objectif de cet article

MPSYOKOHAMA 10th python-mnist, une bibliothèque de données d'apprentissage de caractères numériques manuscrites et de données d'enseignants utilisées dans l'implémentation de DNN, s'exécute dans l'environnement Windows. Je ne l'avais pas, donc un mémo quand je l'ai forcé à bouger

Contexte

・ Installez python-mnist 0.3 avec pip ・ Depuis le site MINST DATABASE, train-images-idx3-ubyte.gz: train-labels-idx1-ubyte.gz: Télécharger -Créez un dossier nommé mnist dans le répertoire où python s'exécute. -Décompressez les deux fichiers ci-dessus et enregistrez-les. En d'autres termes Environnement d'exécution> mninst> train-images-idx3-ubyte> train-images.idx3-ubyte (fichier) Environnement d'exécution> mninst> train-labels-idx1-ubyte> train-labels.idx1-ubyte (fichier) J'ai fait la situation. Donc, quand j'essaye de le lire, je spécifie d'abord le dossier mnist sous l'environnement d'exécution, mais "" Ceci est \ (demi-largeur) pour Windows.

from mnist import MNIST
mndata = MNIST('.\mnist')

Et puis pour lire le fichier

train_img, train_label = mndata.load_training()

Lorsque je l'ai exécuté, il a été rejeté en raison d'un problème d'autorisation. .. .. J'ai essayé de jouer avec les autorisations de divers fichiers, mais je n'ai pas pu le résoudre.

PermissionError: [Errno 13] Permission denied: '.\\mnist\\train-labels-idx1-ubyte'

Cependant, si vous insérez directement import os et le lisez, vous pouvez accéder au fichier. Hmmm.

with open('.\mnist\\train-labels-idx1-ubyte\\train-labels.idx1-ubyte', 'rb') as f:
    line = f.readline()
    print(line)
>>>b'\x00\x00\x08\x01\x00\x00\xea....

Cela ne peut pas être aidé, alors chargeons-le directement en faisant référence à la bibliothèque.

C:\Python34\Lib\site-packages\mnist

En référence à loader.py ici, j'ai décidé d'écrire un code qui ne peut faire que ce dont j'ai besoin cette fois.

la mise en oeuvre

Je voulais vraiment utiliser quelque chose comme os.join pour le faire fonctionner dans n'importe quel emplacement de stockage, mais j'ai abandonné à cause de mon manque de capacité. Je mets un fichier directement sous mnist et je le lis. Environnement d'exécution> mninst> train-images.idx3-ubyte (fichier) Environnement d'exécution> mninst> train-labels.idx1-ubyte (fichier)

WMINST.py
# coding: utf-8

import os
import struct
from array import array

class MNIST(object):
    def __init__(self):
        self.train_img_fname = 'train-images-idx3-ubyte'
        self.train_lbl_fname = 'train-labels-idx1-ubyte'
        
        self.train_images = []
        self.train_labels = []
        
    def load_training(self): #Créez un dossier appelé mninst dans le dossier de travail et entraînez-vous dessus-images.idx3-ubyte,train-labels.idx1-Je mets ubyte.
        ims, labels = self.load(('.\mnist\\train-images.idx3-ubyte'),
                                 ('.\mnist\\train-labels.idx1-ubyte'))
        
        self.train_images = ims
        self.train_labels = labels
        
        return ims, labels
        
    @classmethod
    def load(cls, path_img, path_lbl):
        with open(path_lbl, 'rb') as file:
                    magic, size = struct.unpack(">II", file.read(8))
                    if magic != 2049:
                        raise ValueError('Magic number mismatch, expected 2049,'
                                         'got {}'.format(magic))

                    labels = array("B", file.read())

        with open(path_img, 'rb') as file:
                    magic, size, rows, cols = struct.unpack(">IIII", file.read(16))
                    if magic != 2051:
                        raise ValueError('Magic number mismatch, expected 2051,'
                                         'got {}'.format(magic))

                    image_data = array("B", file.read())

        images = []
        for i in range(size):
            images.append([0] * rows * cols)

        for i in range(size):
            images[i][:] = image_data[i * rows * cols:(i + 1) * rows * cols]

        return images, labels

J'étais accro à la spécification du chemin du fichier, comme '. \ Mnist \ train-labels.idx1-ubyte'```, après le premier dossier mnist `\\` Connectez-vous à deux. (``\` ʻest \ (demi-largeur))

J'ai donné à ce fichier un nom approprié (WMINST.py), je l'ai sauvegardé dans mon répertoire de travail et l'ai chargé, et cela a fonctionné. La raison pour laquelle il devient MNIST () et non (. \ Mnist) est que je l'ai écrit pour que le chemin du fichier puisse être chargé directement.

from WMNIST import MNIST
mndata = MNIST()
train_img, train_label = mndata.load_training()

Apparemment, cela a fonctionné.

Recommended Posts

Apprendre en profondeur à partir des bases mathématiques Partie 2 (pendant la fréquentation)
Apprentissage profond à partir des bases mathématiques (pendant la fréquentation)
[Partie 4] Utilisez le Deep Learning pour prévoir la météo à partir d'images météorologiques
[Partie 1] Utilisez le Deep Learning pour prévoir la météo à partir d'images météorologiques
[Partie 2] Utilisez le Deep Learning pour prévoir la météo à partir d'images météorologiques
Mémo d'auto-apprentissage "Deep Learning from scratch" (partie 12) Deep learning
Statistiques mathématiques des bases Variables probabilistes
Apprentissage profond à partir de zéro
[Deep Learning from scratch] J'ai implémenté la couche Affine
Othello ~ De la troisième ligne de "Implementation Deep Learning" (4) [Fin]
Apprentissage profond à partir de zéro 1 à 3 chapitres
Apprendre des bases Manuel sur l'intelligence artificielle Chapitre 5 Problèmes de fin de chapitre
J'ai essayé d'implémenter Perceptron Part 1 [Deep Learning from scratch]
Mémo d'auto-apprentissage "Deep Learning from scratch" (partie 8) J'ai dessiné le graphique du chapitre 6 avec matplotlib
Deep learning / Deep learning made from scratch Chapitre 3 Mémo
Deep Learning / Deep Learning à partir de Zero 2 Chapitre 5 Mémo
Version Lua Apprentissage profond à partir de zéro Partie 6 [Traitement d'inférence de réseau neuronal]
Essayez l'apprentissage en profondeur avec TensorFlow Partie 2
Apprentissage profond à partir de zéro (calcul des coûts)
Deep Learning / Deep Learning à partir de Zero 2 Chapitre 7 Mémo
Deep Learning / Deep Learning à partir de Zero 2 Chapitre 8 Mémo
Deep learning / Deep learning made from scratch Chapitre 5 Mémo
Deep learning / Deep learning made from scratch Chapitre 4 Mémo
Deep learning / Deep learning from scratch 2 Chapitre 3 Mémo
Mémo d'apprentissage profond créé à partir de zéro
Deep Learning / Deep Learning à partir de Zero 2 Chapitre 6 Mémo
(python) Principes de base du chaînage de la bibliothèque d'apprentissage en profondeur
Tutoriel d'apprentissage en profondeur de la construction d'environnement
À propos de l'ordre d'apprentissage des langages de programmation (de débutant à intermédiaire) Partie 2
Traitement de la voix par apprentissage profond: identifions qui est l'acteur vocal à partir de la voix
Apprentissage amélioré pour apprendre de zéro à profond
[Mémo d'apprentissage] Le Deep Learning fait de zéro [Chapitre 7]
Apprentissage profond à partir de zéro (propagation vers l'avant)
Othello-De la troisième ligne de "Implementation Deep Learning" (3)
Notes d'apprentissage depuis le début de Python 1
Apprentissage profond / Apprentissage profond à partir de zéro 2-Essayez de déplacer GRU
Deep learning / Deep learning made from scratch Chapitre 6 Mémo
[Mémo d'apprentissage] Le Deep Learning fait de zéro [Chapitre 6]
Visualisez les effets de l'apprentissage profond / de la régularisation
Alignement d'image: du SIFT au deep learning
Python: Identification du genre (développement de l'apprentissage profond) Partie 1
Python: Identification du genre (développement de l'apprentissage profond) Partie 2
"Deep Learning from scratch" avec Haskell (inachevé)
Deep learning / Deep learning made from scratch Chapitre 7 Mémo
[Windows 10] Construction de l'environnement "Deep Learning from scratch"
Enregistrement d'apprentissage de la lecture "Deep Learning from scratch"
Notes d'apprentissage depuis le début de Python 2
[Deep Learning from scratch] À propos de l'optimisation des hyper paramètres
Othello-De la troisième ligne de "Implementation Deep Learning" (2)
[Mémo d'apprentissage] Deep Learning fait de zéro [~ Chapitre 4]
Préparez l'environnement pour le livre O'Reilly "Deep Learning from scratch" avec apt-get (Debian 8)
Deep Learning from scratch La théorie et la mise en œuvre de l'apprentissage profond appris avec Python Chapitre 3
Version Lua Deep Learning from scratch Part 5.5 [Rendre les fichiers pkl disponibles dans Lua Torch]
L'apprentissage en profondeur
Mémo d'auto-apprentissage "Deep Learning from scratch" (glossaire illisible)
L'histoire de l'apprentissage profond avec TPU
"Deep Learning from scratch" Mémo d'auto-apprentissage (n ° 9) Classe MultiLayerNet
Deep Learning from scratch ① Chapitre 6 "Techniques liées à l'apprentissage"
Bases de l'apprentissage avec un enseignant Partie 1-Régression simple- (Remarque)
Deep Learning from scratch Chapter 2 Perceptron (lecture du mémo)
Interpolation d'images vidéo par apprentissage en profondeur, partie 1 [Python]