Load_data wurde selbst erstellt, um Python MNIST-Beispielcode in Ihrem eigenen Dataset auszuführen

Einführung

Wenn Sie sich für Deep Learning und KI interessieren und versuchen, den Beispielcode zu verschieben, werden viele Beispiele mit einem Datensatz namens MNIST angezeigt. MNIST ist ein Datensatz handgeschriebener Zeichen, die durch Beschriftungen von 0 bis 9 klassifiziert sind, und ein Graustufenbild mit einer Auflösung von 28 x 28.

Der Beispielcode selbst kann ausgeführt werden, solange die Umgebung erstellt werden kann. Ich möchte den Originaldatensatz verwenden, den ich selbst erstellt habe. Wenn ich mir den MNIST-Code anschaue, ist die Erstellung des Datensatzes mit der folgenden Zeile fast abgeschlossen.

(x_train, y_train), (x_test, y_test) = mnist.load_data()

Das plötzliche Erstellen eines eigenen Datensatzes von hier aus ist eine sehr hohe Hürde. In diesem Artikel implementieren wir anstelle von mnist.load_data eine Funktion zum Erstellen Ihres eigenen Datasets im Mnist-Format.

mnist.load_data() Die MNIST-Spezifikationen werden auch in die offizielle Dokumentation aufgenommen. https://keras.io/ja/datasets/

Die Verwendung ist die gleiche wie im obigen Beispiel. x_train und y_train speichern Trainingsdaten und -etiketten. x_test und y_test speichern auch einen Satz von Verifizierungsdaten.

Die Trainingsdaten sind sehr leicht zu verstehen, daher werde ich sie weitergeben. Maschinelles Lernen Training Datenaufteilung und Lernen / Vorhersage / Verifikation

Selbst erstellte load_data ()

Vorbereitungen für den Umgang mit den load_data, die ich diesmal mache

Hier ist eine Liste der Importe und des Quellcodes.

import.txt


from PIL import Image
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import OneHotEncoder
import pandas as pd
import os, glob

my_load_data().py


def my_load_data(folder_str, size):
    print('load_dataset...')
    folders = folder_str.split('__')
    X = []
    Y = []
    for index, fol_name in enumerate(folders):
        files = glob.glob(fol_name + '/*.jpg')
        for file in files:
            image = Image.open(file)
            image = image.resize((size, size))
            image = image.convert('L')
            data = np.asarray(image)
            X.append(data)
            Y.append(index)
    X = np.array(X)
    Y = np.array(Y)
    oh_encoder = OneHotEncoder(categories='auto', sparse=False)
    onehot = oh_encoder.fit_transform(pd.DataFrame(Y))
    X_train, X_test, y_train, y_test = train_test_split(X, onehot, test_size=0.2)
    return X_train, X_test, y_train, y_test

Das formale Argument folder_str gibt den Ordner an, in den das Bild unterteilt ist. Wenn Sie ein Etikett anhängen, sind mehrere Ordner erforderlich. Geben Sie daher die Ordnernamen an, die durch '__' getrennt sind. Der Beispielcode hat die Erweiterung jpg, Sie können ihn jedoch ändern. Größe ist die Auflösung. Da MNIST 28x28 ist, geben Sie 28 an. Das Label scheint ein heißes zu sein, deshalb werde ich es vorerst konvertieren. Dies ist die Hauptfunktion, wenn die obige Funktion tatsächlich verwendet wird.

sample.py


import argparse

def main():
    parser = argparse.ArgumentParser(description='sample')
    parser.add_argument('--folder', '-i')
    parser.add_argument('--size', '-s', type=int, default=28)
    args = parser.parse_args()
    X_train, X_test, y_train, y_test = my_load_data(args.folder, args.size)

    #Bestätigung
    print('X_train',X_train)
    print('y_train',y_train)

Beispiel für einen Ausführungsbefehl

python sample.py --folder f1__f2__f3 -s 28

f1, f2 und f3 nehmen den Ordner an, der die Bilder im aktuellen Verzeichnis enthält.

abschließend

Dieses Mal habe ich my_load_data erstellt, damit ich MNIST load_data mit meinen eigenen Daten testen kann. Wir wünschen Ihnen viel Spaß beim Verschieben der MNIST-Probe. Wenn Sie Probleme mit der Operation haben oder Fragen haben, können Sie dies gerne kommentieren.

Beim Schreiben dieses Artikels habe ich mir die Weisheit verschiedener Vorfahren geliehen. Ich werde es am Ende schreiben. Danke fürs Lesen. Wenn Sie LGTM mögen, bitte!

Referenz

[So konvertieren Sie Bilddaten in das Numpy-Format](https://newtechnologylifestyle.net/%E7%94%BB%E5%83%8F%E3%83%87%E3%83%BC%E3%82%BF % E3% 81% 8B% E3% 82% 89numpy% E5% BD% A2% E5% BC% 8F% E3% 81% AB% E5% A4% 89% E6% 8F% 9B% E3% 81% 99% E3 % 82% 8B% E6% 96% B9% E6% B3% 95 /)

Grundlegendes zur Erkennung von Keras VAE-Bildfehlern

Bildwiedergabe mit Faltungs-Auto-Encoder, Rauschunterdrückung, Segmentierung

Recommended Posts

Load_data wurde selbst erstellt, um Python MNIST-Beispielcode in Ihrem eigenen Dataset auszuführen
[Python] Registrieren Sie Ihre eigene Bibliothek in PyPI
Führen Sie Python-Code in der A2019 Community Edition aus
Erstellen Sie Verknüpfungen, um Python-Dateien auf dem Terminal mit VScode auszuführen
Setzen Sie MicroPython unter Windows ein, um ESP32 unter Python auszuführen
Erstellen Sie einen Datensatz, indem Sie zufällig MNIST-Daten auswählen
Führen Sie Python auf Apache aus, um InfluxDB-Daten anzuzeigen
Memo zum Erstellen einer eigenen Box mit Peppers Python
[Einführung in die Udemy Python3 + -Anwendung] 66. Erstellen einer eigenen Ausnahme
Nehmen Sie Ihre eigene maximale Speichernutzung in Linux & Python
Versuchen Sie, Ihr eigenes Intro-Quiz mit Python zu verbessern
[Road to Intermediate Python] Definieren Sie in Ihrer eigenen Klasse
Schreiben Sie Python2-Code in Python3 um (2to3)
Detaillierte Erklärung So führen Sie den Beispielcode von UNIX Programming 3rd Edition auf einem Mac aus
Beispiel zum Einfügen der Python Flask-Webanwendung in den Azure App Service (Webanwendung)
Führen Sie die Intelligenz Ihrer eigenen Python-Bibliothek mit VScode aus.
Führen Sie den Python-Beispielcode BNO055 mit I2C (Raspberry Pi 3B) aus.
Ich möchte Python mit VS-Code ausführen können
Senden Sie Push-Benachrichtigungen mit Python2 an iOS-Apps (mit Beispielcode).
Führen Sie den Ausgabecode auf dem lokalen Webserver in Python als "A, gibt vor, B zu sein" aus
Führen Sie Openpose unter Python (Windows) aus.
Führen Sie Tensorflow 2.x unter Python 3.7 aus
Aktualisieren Sie die Python, die Sie auf Ihrem Mac hatten, auf 3.7-> 3.8
Führen Sie Pythons CGI auf CORESERVER aus
Führen Sie den Unix-Befehl auf Python aus
So führen Sie Notepad ++ Python aus
[Python] Beispielcode für die Python-Grammatik
Konvertieren Sie Python 3.x-Code in Python 2.x.
So installieren Sie OpenCV in Cloud9 und führen es in Python aus
So schreiben Sie Code für den Zugriff auf Python dashDB auf Bluemix oder lokal
Versuchen Sie, sich mit Python auf Ihrem PC automatisch bei Netflix anzumelden