[PYTHON] Trainingsdaten erstellen

Einführung

Letztes Mal Erstellen Sie Trainingsdaten mit den gesammelten Bilddaten. Da die Berechnung, ob die Bilddaten unverändert an Tensol Flow übergeben werden, sehr lange dauert, werden sie in das Numpy-Array-Format konvertiert, um die Berechnungszeit zu verkürzen.

Quellcode

importieren

from PIL import Image
import os, glob
import numpy as np
from sklearn import model_selection

Vorbereitung für den Konvertierungsprozess

classes = ["monkey", "boar", "crow"]
num_classes = len(classes)
image_size = 50

X = []
Y = []

Dieses Mal werden wir "Affe", "Eber" und "Krähe" klassifizieren, damit wir die Schlüsselwörter speichern. Die Bildgröße ist auf 50x50 vereinheitlicht. "X" und "Y" sind Beschriftungen, die die Bilddaten angeben und angeben, ob das Bild Affe (0), Bohrung (1) oder Krähe (2) ist.

for index, classlabel in enumerate(classes):
    photos_dir = "./" + classlabel
    files = glob.glob(photos_dir + "/*.jpg ")
    for i, file in enumerate(files):
        if i >= 141: break # monkey,boar,Krähe Stellen Sie jeweils die Mindestanzahl von Daten ein
        image = Image.open(file)
        image = image.convert("RGB")
        image = image.resize((image_size, image_size))
        data = np.asarray(image)
        X.append(data)
        Y.append(index)
X = np.array(X)
Y = np.array(Y)

glob () ist eine Methode, mit der eine Liste von Dateien abgerufen werden kann, indem Platzhaltermuster abgeglichen werden. Die folgenden Daten werden in Dateien gespeichert.

['./monkey\\49757184328.jpg', 
 './monkey\\49767449258.jpg', 
 ...

Öffnen Sie für jedes Bild das Bild, konvertieren Sie es in das RGB 256-Abstufungsformat und ändern Sie die Größe auf 50 x 50. Konvertieren Sie es dann in das Numpy-Array-Format (das schneller zu sein scheint als die Python-Liste).

Das auf diese Weise erstellte "X" und "Y" enthält die folgenden Daten

X


(423, 50, 50, 3)Anordnung von
[[[[ 89  92  60]
   [ 85  84  52]
   [ 91  84  51]
   ...
   [177 178  24]
   [142 145  15]
   [231 219  35]]
   ...

Y


423 Array
[0 0 ... 1 1 ... 2 2 ...]

Beiseite

Zwei Methoden werden verwendet, um zu einem Numpy-Array zu wechseln, z. B. "data = np.asarray (image)" und "X = np.array (X)". Das Verhalten ist beim Konvertieren von einer Liste in ein Numpy-Array dasselbe, beim Konvertieren von einem Numpy-Array in ein Numpy-Array ist das Verhalten jedoch anders. Referenz: https://punhundon-lifeshift.com/array_asarray

Trainingsdaten speichern

Verwenden Sie die Methode "train_test_split", um "X" und "Y" in Trainingsdaten und Modellvalidierungsdaten aufzuteilen und unter dem Dateinamen "animal.npy" zu speichern.

X_train, X_test, y_train, y_test = model_selection.train_test_split(X, Y)
xy = (X_train, X_test, y_train, y_test)
np.save("./animal.npy", xy)

X_train und y_train befinden sich in einem Array von 317, "X_test" und "y_test" befinden sich in einem Array von 106. Das heißt, ungefähr 75% der Daten von "X" und "Y" sind in Züge unterteilt, und ungefähr 25% der Daten sind in Tests unterteilt.

Recommended Posts

Trainingsdaten erstellen
Trainingsdaten von CNN
Tool zum Erstellen von Trainingsdaten für die OpenCV-Objekterkennung
Data Scientist Training Course Kapitel 2 Tag 2
Data Scientist Training Course Kapitel 3 Tag 3
Data Scientist Training Course Kapitel 4 Tag 1
Data Scientist Training Course Kapitel 3 Tag 1 + 2
Pandas Cleansing Labeled Training Data Split
[Python] Kapitel 04-06 Verschiedene Datenstrukturen (Erstellung eines Wörterbuchs)
Erstellen einer Software zur Visualisierung der Datenstruktur ~ Heap ~
Datenverarbeitung
Erstellen einer Datenanalyseanwendung mit Streamlit
Ich habe ein Python-Datenanalysetraining aus der Ferne durchgeführt
Erstellen einer Google-Tabelle mit der Python / Google Data-API
Trainingsdaten und Testdaten (Was sind X_train und y_train?) ①
Trainingsdaten und Testdaten (Was sind X_train und y_train?) ②
Maschinelles Lernen Aufteilung der Trainingsdaten und Lernen / Vorhersage / Verifizierung