[1 Kopie pro Tag] Classify_images_Using_Python & Machine Learning [Daily_Coding_003]

zunaechst

――Dieser Artikel ist ein Memorandum-Artikel für Grundschüler, die selbst Python, maschinelles Lernen usw. lernen. ――Es wird sehr einfach sein: "Studieren Sie, während Sie den Code kopieren, an dem Sie interessiert sind". ――Wir würden uns über Ihre konstruktiven Kommentare freuen (LGTM & Lager, wenn Sie es mögen).

Thema: Classify_images_Using_Python & Machine Learning

Das heutige Thema ist ein Video auf Youtube mit dem Titel Classify_images_Using_Python & Machine Learning. Es ist, als würde man Bilder von Hunden und Katzen lernen und sie beurteilen.

Classify Images Using Python & Machine Learning

Die Analyse verwendete Google Colaboratry, wie im YouTube-Video gezeigt.

Dann würde ich es gerne machen.

Schritt 1: Bibliothek importieren ~ Daten verarbeiten

import tensorflow as tf
from tensorflow import keras
from keras.models import Sequential
from keras.layers import Dense, Flatten, Conv2D, MaxPool2D, Dropout
from tensorflow.keras import layers
from keras.utils import to_categorical
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('fivethirtyeight')

Nächster

  1. Daten lesen
  2. Bestätigung des Datentyps
  3. Bestätigung der Datenform
  4. Überprüfen Sie einige Daten
  5. Geben Sie ein Bild aus

Ich werde es tun.

#1
from keras.datasets import cifar10
(x_train, x_test), (y_train, y_test) = cifar10.load_data()

#2
print(type(x_train))
print(type(y_train))
print(type(x_test))
print(type(y_test))

#3
print('x_train shape:', x_train.shape)
print('y_train shape:', y_train.shape)
print('x_test shape:', x_test.shape)
print('y_test shape:', y_test.shape)

#4
index = 10
x_train[index]

#5
img = plt.imshow(x_train[index])

deer.png

Ich kann das Bild sehen. Schauen wir uns als nächstes die Beschriftung an, die diesem Bild zugeordnet ist.

print('The image label is:', x_train[index])

Wenn Sie sich das ansehen, können Sie sehen, dass es mit "4" gekennzeichnet ist. Als nächstes enthält dieser Datensatz 10 verschiedene Bilder.

# Get the image classification
classification = ['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']
# Print the image class
print('The image class is:', classification[y_train[index][0]])

Es scheint also, dass dies ein Bild eines "Hirsches" ist (selbst wenn Sie sich oft dem Bildschirm nähern, ist es schwierig ...).

Setzen Sie als nächstes die erläuterte Variable y auf "one_hot_encoding" und weisen Sie eine Zahl von 0 oder 1 zu (1, falls korrekt, andernfalls 0), damit die Bildbezeichnung in das neuronale Netzwerk eingefügt werden kann.

y_train_one_hot = to_categorical(y_train)
y_test_one_hot = to_categorical(y_test)
print(y_train_one_hot)
print('The one hot label is:', y_train_one_hot[index])

Standardisieren Sie dann den Datensatz (0-1).

x_train = x_train / 255
x_test = x_test / 255
x_train[index]

Dies ist ungefähr das Ende der Verarbeitung. Als nächstes bauen wir ein CNN-Modell!

Schritt 2: Erstellen Sie ein Modell

model = Sequential()

model.add( Conv2D(32, (5,5), activation='relu', input_shape=(32,32,3)))

model.add(MaxPool2D(pool_size=(2,2)))

model.add( Conv2D(32, (5,5), activation='relu'))

model.add(MaxPool2D(pool_size=(2,2)))

model.add(Flatten())

model.add(Dense(1000, activation='relu'))

model.add(Dropout(0.5))

model.add(Dense(500, activation='relu'))

model.add(Dropout(0.5))

model.add(Dense(250, activation='relu'))

model.add(Dense(10, activation='softmax'))

Als nächstes kompilieren Sie das Modell und trainieren es.


model.compile(loss= 'categorical_crossentropy',
              optimizer= 'adam',
              metrics= ['accuracy'])


hist = model.fit(x_train, y_train_one_hot,
                 batch_size = 256,
                 epochs = 10,
                 validation_split = 0.2)

Testen Sie das fertige Modell mit Testdaten.

model.evaluate(x_test, y_test_one_hot)[1]
>> 0.6811000108718872

Nun, im Video war es genauso, aber das Ergebnis ist nicht so gut. .. ..

Zeichnen Sie vorerst die Genauigkeit und den Verlustfehler mit matplotlib.

# Visualize the model accuracy
plt.plot(hist.history['accuracy'])
plt.plot(hist.history['val_accuracy'])
plt.title('Model accuracy')
plt.ylabel('Accuracy')
plt.xlabel('Epoch')
plt.legend(['Train', 'Val'], loc='upper left')
plt.show()
#Visualize the models loss
plt.plot(hist.history['loss'])
plt.plot(hist.history['val_loss'])
plt.title('Model loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend(['Train', 'Val'], loc='upper right')
plt.show()

Lassen Sie uns abschließend eine Vorhersage mit einem Modell unter Verwendung eines geeigneten Bildes treffen (diesmal das Bild einer Katze).

# Test the model with an example
from google.colab import files
uploaded = files.upload()

# show the image
new_image = plt.imread('cat-xxxxx.jpeg')
img = plt.imshow(new_image)

# Resize the image
from skimage.transform import resize
resized_image = resize(new_image, (32,32,3))
img = plt.imshow(resized_image)

# Get the models predictions
predictions = model.predict(np.array([resized_image]))
# Show the predictions
predictions

# Sort the predictions from least to greatest
list_index = [0,1,2,3,4,5,6,7,8,9]
x = predictions

for i in range(10):
  for j in range(10):
    if x[0][list_index[i]] > x[0][list_index[j]]:
      temp = list_index[i]
      list_index[i] = list_index[j]
      list_index[j] = temp

# Show the sorted labels in order
print(list_index)

# Print the first 5 predictions
for i in range(5):
  print(classification[list_index[i]], ':', round(predictions[0][list_index[i]] * 100, 2), '%')

Ergebnis ist,

cat : 51.09 % dog : 48.73 % deer : 0.06 % bird : 0.04 % frog : 0.04 %

Das Ergebnis war, dass ich kaum beurteilen konnte, ob es sich um eine Katze oder einen Hund handelte (lacht). Die Genauigkeit des Modells war nicht gut und das verwendete Bild war nicht gut.

Schließlich

Dieses Mal studierte ich die Bildbeurteilung mit Tensorflow und Keras. Natürlich bin ich mir bewusst, dass es nicht genau genug ist, um verwendet zu werden, aber ich denke, es war ein gutes Sprungbrett.

Vielen Dank für Ihre weitere Unterstützung.

(Bisher gelernt)

  1. [1 Kopie pro Tag] Vorhersage der Mitarbeiterabnutzung [Daily_Coding_001]
  2. [1 Kopie pro Tag] Erstellen Sie ein Aktienprognoseprogramm [Daily_Coding_002]

Recommended Posts

[1 Kopie pro Tag] Classify_images_Using_Python & Machine Learning [Daily_Coding_003]
[1 Kopie pro Tag] Classify_images_Using_Python & Machine Learning [Daily_Coding_003]
[1 Kopie pro Tag] Erstellen Sie ein Aktienprognoseprogramm [Daily_Coding_002]
[1 Kopie pro Tag] Erstellen Sie ein Aktienprognoseprogramm [Daily_Coding_002]
Maschinelles Lernen
Python-Lerntag 4
[Memo] Maschinelles Lernen
Klassifikation des maschinellen Lernens
Beispiel für maschinelles Lernen
Zusammenfassung des Lernprogramms für maschinelles Lernen
Maschinelles Lernen Über Overlearning
Maschinelles Lernen ⑤ AdaBoost-Zusammenfassung
Maschinelles Lernen: Betreut --AdaBoost
Logistische Regression beim maschinellen Lernen
Lernrekord 4 (8. Tag)
Lernrekord 3 (7. Tag)
Maschinelles Lernen unterstützt Vektormaschine
Lernrekord 5 (9. Tag)
Lernrekord 6 (10. Tag)
Programmieren des Lernprotokolls 2. Tag
Lernrekord 8 (12. Tag)
Lernrekord 1 (4. Tag)
Lernrekord 7 (11. Tag)
Maschinelles Lernen studieren ~ matplotlib ~
Lineare Regression des maschinellen Lernens
Memo zum Kurs für maschinelles Lernen
Bibliothek für maschinelles Lernen dlib
Maschinelles Lernen (TensorFlow) + Lotto 6
Lerne irgendwie maschinelles Lernen
Lernrekord 2 (6. Tag)
Lernrekord 16 (20. Tag)
Lernrekord 22 (26. Tag)
Bibliothek für maschinelles Lernen Shogun
Maschinelles Lernen Kaninchen Herausforderung
Einführung in das maschinelle Lernen
Maschinelles Lernen: k-Nächste Nachbarn
Was ist maschinelles Lernen?