Je invoerafbeelding voorbereiden
Het originele ResNet50-model is getraind met afbeeldingen van 224 x 224 pixels en een aantal preprocessing-bewerkingen; zoals het aftrekken van de gemiddelde pixelwaarde in de trainingsset voor alle trainingsafbeeldingen. Je moet de afbeeldingen waarop je wilt voorspellen op dezelfde manier voorbewerken.
Als je op één afbeelding voorspelt, moet die passen bij de inputvorm van het model, die er in dit geval zo uitziet:
(batch-size, width, height, channels). np.expand_dims met parameter axis = 0 voegt de batch-size-dimensie toe, wat aangeeft dat er één afbeelding naar predict wordt doorgestuurd. Deze batch-size-waarde is 1, omdat we maar op één afbeelding voorspellen.
Je doorloopt deze preprocessing-stappen terwijl je de afbeelding van deze hond (Ivy) voorbereidt zodat ResNet50 haar kan classificeren.
Deze oefening maakt deel uit van de cursus
Introductie tot Deep Learning met Keras
Oefeninstructies
- Importeer
imageuittensorflow.keras.preprocessingenpreprocess_inputuittensorflow.keras.applications.resnet50. - Laad de afbeelding met de juiste
target_sizevoor je model. - Zet hem om naar een array met
image.img_to_array(). - Voorverwerk
img_expandedop dezelfde manier als de originele ResNet50-trainingsafbeeldingen metpreprocess_input().
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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 = ____(____)