Förbereda din indatabild
Den ursprungliga ResNet50-modellen tränades med bilder av storleken 224 x 224 pixlar och ett antal förbehandlingsåtgärder, till exempel subtraktionen av medelvärdet för pixelvärdena i träningsdatamängden. Du behöver förbehandla de bilder du vill göra prediktioner på på samma sätt.
När du gör en prediktion på en enskild bild behöver den passa modellens indata-form, som i det här fallet ser ut så här:
(batch-storlek, bredd, höjd, kanaler). np.expand_dims med parametern axis = 0 lägger till dimensionen för batch-storlek, vilket innebär att en enskild bild skickas till prediktionen. Värdet för den här dimensionen är 1, eftersom vi bara gör en prediktion på en bild.
Du går igenom dessa förbehandlingssteg när du förbereder bilden på hunden Ivy så att den kan klassificeras av ResNet50.
Den här övningen är en del av kursen
Introduktion till djupinlärning med Keras
Övningsinstruktioner
- Importera
imagefråntensorflow.keras.preprocessingochpreprocess_inputfråntensorflow.keras.applications.resnet50. - Läs in bilden med rätt
target_sizeför din modell. - Omvandla den till en array med
image.img_to_array(). - Förbehandla
img_expandedpå samma sätt som de ursprungliga träningsbilderna i ResNet50 behandlades, med hjälp avpreprocess_input().
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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 = ____(____)