Dein Eingabebild vorbereiten
Das ursprüngliche ResNet50-Modell wurde mit Bildern der Größe 224 × 224 Pixel und mehreren Vorverarbeitungsschritten trainiert; zum Beispiel dem Abziehen des mittleren Pixelwerts des Trainingssatzes für alle Trainingsbilder. Du musst die Bilder, auf denen du vorhersagen willst, auf die gleiche Weise vorverarbeiten.
Wenn du auf einem einzelnen Bild vorhersagst, muss es zur Eingabeform des Modells passen, die in diesem Fall so aussieht:
(batch-size, width, height, channels). np.expand_dims mit dem Parameter axis = 0 fügt die batch-size-Dimension hinzu und gibt an, dass ein einzelnes Bild zur Vorhersage übergeben wird. Dieser batch-size-Wert ist 1, da wir nur auf einem Bild vorhersagen.
Du gehst diese Vorverarbeitungsschritte durch, während du das Bild dieses Hundes (Name: Ivy) so vorbereitest, dass es von ResNet50 klassifiziert werden kann.
Diese Übung ist Teil des Kurses
<Kurs>Einstieg ins Deep Learning mit Keras</Kurs>Übungsanweisungen
- Importiere
imageaustensorflow.keras.preprocessingundpreprocess_inputaustensorflow.keras.applications.resnet50. - Lade das Bild mit der passenden
target_sizefür dein Modell. - Wandle es mit
image.img_to_array()in ein Array um. - Verarbeite
img_expandedmitpreprocess_input()genauso vor wie die ursprünglichen ResNet50-Trainingsbilder.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Import image and preprocess_input
from tensorflow.keras.____ import ____
from tensorflow.keras.____.____ import ____
# Load the image with the right target size for your model
img = image.load_img(img_path, target_size=(____, ____))
# Turn it into an array
img_array = image.____(____)
# Expand the dimensions of the image, this is so that it fits the expected model input format
img_expanded = np.expand_dims(img_array, axis = 0)
# Pre-process the img in the same way original images were
img_ready = ____(____)