[PYTHON] Deep Learning aus den mathematischen Grundlagen Teil 2 (während der Teilnahme)

Zweck dieses Artikels

MPSYOKOHAMA 10th python-mnist, eine Bibliothek handgeschriebener numerischer Zeichentrainingsdaten und Lehrerdaten, die bei der Implementierung von DNN verwendet werden, wird in der Windows-Umgebung ausgeführt Ich hatte es nicht, also ein Memo, als ich es zwang, mich zu bewegen

Hintergrund

・ Installieren Sie Python-Mnist 0.3 mit Pip ・ Von MINST DATABASE-Site, train-images-idx3-ubyte.gz: train-labels-idx1-ubyte.gz: herunterladen

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

Und dann die Datei lesen

train_img, train_label = mndata.load_training()

Als ich es ausführte, wurde es aufgrund eines Berechtigungsproblems abgelehnt. .. .. Ich habe versucht, mit den Berechtigungen verschiedener Dateien zu spielen, konnte es aber nicht lösen.

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

Wenn Sie jedoch das Import-Betriebssystem direkt einfügen und lesen, können Sie auf die Datei zugreifen. 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....

Es kann nicht geholfen werden, also laden wir es direkt, während wir auf die Bibliothek verweisen.

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

Mit Bezug auf loader.py hier habe ich beschlossen, einen Code zu schreiben, der nur das kann, was ich diesmal brauche.

Implementierung

Ich wollte wirklich so etwas wie os.join verwenden, damit es an jedem Speicherort funktioniert, aber ich gab wegen meiner mangelnden Fähigkeiten auf. Ich habe eine Datei direkt unter mnist abgelegt und gelesen. Ausführungsumgebung> mninst> train-images.idx3-ubyte (Datei) Ausführungsumgebung> mninst> train-labels.idx1-ubyte (Datei)

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): #Erstellen Sie im Arbeitsordner einen Ordner namens mninst und trainieren Sie darin-images.idx3-ubyte,train-labels.idx1-Ich habe Ubyte gesetzt.
        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

Ich war süchtig danach, den Dateipfad wie `. \ Mnist \\ train-labels.idx1-ubyte'``` nach dem ersten mnist-Ordner` `\\` anzugeben Verbinde dich mit zwei. (`` \\ `ist \ (halbe Breite))

Ich gab dieser Datei einen passenden Namen (WMINST.py), speicherte sie in meinem Arbeitsverzeichnis, lud sie und es funktionierte. Der Grund, warum es zu MNIST () und nicht zu (. \ Mnist) wird, ist, dass ich es geschrieben habe, damit der Dateipfad direkt geladen werden kann.

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

Anscheinend hat es funktioniert.

Recommended Posts

Deep Learning aus den mathematischen Grundlagen Teil 2 (während der Teilnahme)
Deep Learning aus den mathematischen Grundlagen (während der Teilnahme)
[Teil 4] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Teil 1] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Teil 2] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
"Deep Learning from Grund" Memo zum Selbststudium (Teil 12) Deep Learning
Mathematische Statistik aus den Grundlagen Probabilistische Variablen
Deep Learning von Grund auf neu
[Deep Learning von Grund auf neu] Ich habe die Affine-Ebene implementiert
Othello ~ Aus der dritten Zeile von "Implementation Deep Learning" (4) [Ende]
Deep Learning von Grund auf 1-3 Kapitel
Lernen aus den Grundlagen Lehrbuch für künstliche Intelligenz Kapitel 5 Kapitelende Probleme
Ich habe versucht, Perceptron Teil 1 [Deep Learning von Grund auf neu] zu implementieren.
"Deep Learning from Grund" Memo zum Selbststudium (Teil 8) Ich habe die Grafik in Kapitel 6 mit matplotlib gezeichnet
Deep Learning / Deep Learning von Grund auf neu Kapitel 3 Memo
Deep Learning / Deep Learning von Null 2 Kapitel 5 Memo
Lua-Version Deep Learning von Grund auf neu Teil 6 [Inferenzverarbeitung für neuronale Netze]
Versuchen Sie es mit TensorFlow Part 2
Tiefes Lernen von Grund auf neu (Kostenberechnung)
Deep Learning / Deep Learning von Null 2 Kapitel 7 Memo
Deep Learning / Deep Learning von Null 2 Kapitel 8 Memo
Deep Learning / Deep Learning von Grund auf neu Kapitel 5 Memo
Deep Learning / Deep Learning von Grund auf neu Kapitel 4 Memo
Deep Learning / Deep Learning von Grund auf neu 2 Kapitel 3 Memo
Deep Learning Memo von Grund auf neu gemacht
Deep Learning / Deep Learning von Null 2 Kapitel 6 Memo
(Python) Deep Learning Library Chainer-Grundlagen Grundlagen
Deep Learning Tutorial aus dem Umgebungsbau
Über die Reihenfolge des Lernens von Programmiersprachen (vom Anfänger bis zum Fortgeschrittenen) Teil 2
Sprachverarbeitung durch tiefes Lernen: Lassen Sie uns anhand der Stimme herausfinden, wer der Sprecher ist
Verbessertes Lernen, um von null bis tief zu lernen
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 7]
Tiefes Lernen von Grund auf neu (Vorwärtsausbreitung)
Othello-Aus der dritten Zeile von "Implementation Deep Learning" (3)
Notizen vom Anfang von Python 1 lernen
Tiefes Lernen / Tiefes Lernen von Grund auf 2-Versuchen Sie, GRU zu bewegen
Deep Learning / Deep Learning von Grund auf neu Kapitel 6 Memo
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 6]
Visualisieren Sie die Auswirkungen von Deep Learning / Regularisierung
Bildausrichtung: von SIFT bis Deep Learning
Python: Geschlechtsidentifikation (Entwicklung von Deep Learning) Teil 1
Python: Geschlechtsidentifikation (Entwicklung von Deep Learning) Teil 2
"Deep Learning von Grund auf neu" mit Haskell (unvollendet)
Deep Learning / Deep Learning von Grund auf neu Kapitel 7 Memo
[Windows 10] Aufbau einer "Deep Learning from Scratch" -Umgebung
Lernbericht über das Lesen von "Deep Learning von Grund auf neu"
Notizen vom Anfang von Python 2 lernen
[Deep Learning von Grund auf neu] Über die Optimierung von Hyperparametern
Othello-Aus der dritten Zeile von "Implementation Deep Learning" (2)
[Lernnotiz] Deep Learning von Grund auf neu gemacht [~ Kapitel 4]
Bereiten Sie die Umgebung für das O'Reilly-Buch "Deep Learning from Grund neu" mit apt-get vor (Debian 8).
Deep Learning von Grund auf neu Die Theorie und Implementierung des mit Python erlernten Deep Learning Kapitel 3
Lua-Version Deep Learning von Grund auf neu Teil 5.5 [Bereitstellung von pkl-Dateien in Lua Torch]
Tiefes Lernen
Selbststudien-Memo "Deep Learning from Grund" (unlesbares Glossar)
Die Geschichte des tiefen Lernens mit TPU
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 9) MultiLayerNet-Klasse
Deep Learning von Grund auf neu ① Kapitel 6 "Lerntechniken"
Grundlagen des Lernens mit einem Lehrer Teil 1 - Einfache Regression - (Hinweis)
Deep Learning von Grund auf neu Kapitel 2 Perceptron (Memo lesen)
Videorahmeninterpolation durch tiefes Lernen Teil 1 [Python]