Preparare l'immagine di input
Il modello ResNet50 originale è stato addestrato con immagini di dimensione 224 x 224 pixel e con alcune operazioni di pre-elaborazione; ad esempio, la sottrazione del valore medio dei pixel del set di addestramento per tutte le immagini. Devi quindi pre-elaborare nello stesso modo le immagini su cui vuoi fare predizioni.
Quando effettui una predizione su una singola immagine, questa deve rispettare la forma di input del modello, che in questo caso è:
(batch-size, width, height, channels). np.expand_dims con il parametro axis = 0 aggiunge la dimensione batch-size, indicando che verrà passata una singola immagine a predict. Questo valore di batch-size è 1, dato che stiamo predicendo su una sola immagine.
Ripasserai questi passaggi di pre-elaborazione preparando l'immagine di questo cane (di nome Ivy) in modo che possa essere classificata da ResNet50.
Questo esercizio fa parte del corso
Introduzione al Deep Learning con Keras
Istruzioni dell'esercizio
- Importa
imagedatensorflow.keras.preprocessingepreprocess_inputdatensorflow.keras.applications.resnet50. - Carica l'immagine con il corretto
target_sizeper il tuo modello. - Convertila in un array con
image.img_to_array(). - Pre-elabora
img_expandednello stesso modo in cui sono state elaborate le immagini di addestramento originali di ResNet50 conpreprocess_input().
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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 = ____(____)