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:
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.
endian="big"
, nicht "high"
:
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.
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.
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 em> und testData em> in der Umgebung.
Aus irgendeinem Grund habe ich keine Dimnamen für die Matrizen erhalten.