Wie liest man die MNIST-Datenbank in R?

8

Ich arbeite gerade an einer Fallstudie, für die ich an der MNIST-Datenbank arbeiten muss .
Die Dateien in dieser Website sollen im IDX-Dateiformat vorliegen. Ich habe versucht, diese Dateien mit einfachen Texteditoren wie Notepad und Wordpad zu betrachten, aber kein Glück Da ich davon ausgegangen bin, dass sie im High-Endian-Format vorliegen, habe ich Folgendes versucht:

%Vor%

Ich habe einige Zahlen als Ausgabe, aber keine von ihnen ergab für mich Sinn.

Kann jemand bitte erklären, wie man die MNIST-Datenbankdateien in R liest und wie man diese Zahlen interpretiert? Danke.

    
StrikeR 03.02.2014, 07:08
quelle

3 Antworten

18

endian="big" , nicht "high" :

%Vor%

magische Zahl:

%Vor%

Anzahl der Bilder:

%Vor%

Anzahl der Zeilen:

%Vor%

Anzahl der Spalten:

%Vor%

Hier kommen die Daten:

%Vor%

gemäß der Bilddatenbeschreibung des Trainingssets auf der Website.

Jetzt müssen Sie nur noch 28 * 28-Byte-Chunks in Matrizen loopen und lesen.

Beginnen Sie noch einmal:

%Vor%

Kopfzeile überspringen:

%Vor%

sollte eigentlich die 28,28 aus dem Header lesen aber hier hartcodiert bekommen:

%Vor%

Muß möglicherweise die Matrix transponieren oder spiegeln, ich denke, es ist eine umgedrehte "7".

%Vor%

holt dich:

Oh, und Google führt mich zu: Ссылка was vielleicht nützlich sein könnte.

    
Spacedman 03.02.2014, 10:35
quelle
2

So können Sie es mit Darch package machen:

Ausführen readMNIST('C:/Users/pj_/Dir/')

Was test.RData und train.RData in Ihrem Set-Verzeichnis speichert. Wenn Sie diese beiden Dateien in Ihren Arbeitsbereich laden, können Sie " testData ", " testLabels ", " trainData " und " trainLabels " in Ihrer globalen Umgebung sehen.

    
Pj_ 15.01.2016 14:48
quelle
2

Nachstehend das oben erwähnte Paket darch (nicht ~ Darch ~):

Das Paket heißt darch . Es wurde in MRAN (Microsoft R Application Network) verschoben, ist aber auch auf CRAN verfügbar.

Es bietet zwei Funktionen für die MNIST-Daten:

readMNIST liest die auf Ihrer Festplatte gespeicherten ubyte -Dateien und speichert sie als test.Rdata und train.Rdata archives.

provideMNIST , die die Dateien herunterladen und readMNIST auf ihnen aufrufen.

Wenn Sie diese Funktionen aufrufen, müssen Sie die Verzeichnisnamen durch einen einzigen Schrägstrich trennen, z. readMNIST("..\MNIST\") (letzter Schrägstrich erforderlich).

Wenn Sie die Dateien selbst herunterladen, müssen Sie die Dateinamen ändern: Die gz-Archive enthalten Dateien mit Erweiterungen wie t10k-labels.idx1-ubyte , aber readMNIST sucht nach Dateien ohne Erweiterung , wie t10k-labels-idx1-ubyte , also müssen Sie den Punkt in einen Bindestrich ändern (mit darch version 0.12.0, vielleicht werden sie das beheben).

Um die Dateien in R zu laden, müssen Sie die Funktion load verwenden (zB load("..\MNIST\test.Rdata") . Dadurch werden die Matrizen trainData und testData in der Umgebung.

Aus irgendeinem Grund habe ich keine Dimnamen für die Matrizen erhalten.

    
Marco Stamazza 08.10.2016 04:33
quelle

Tags und Links