Pregătirea imaginii de intrare
Modelul original ResNet50 a fost antrenat pe imagini de 224 x 224 pixeli, aplicând și o serie de operații de preprocesare – de exemplu, scăderea valorii medii a pixelilor din setul de antrenament pentru toate imaginile. Trebuie să preprocesezi imaginile pe care vrei să faci predicții în același mod.
Atunci când faci o predicție pe o singură imagine, aceasta trebuie să se potrivească cu forma de intrare a modelului, care arată astfel:
(batch-size, lățime, înălțime, canale). np.expand_dims cu parametrul axis = 0 adaugă dimensiunea batch-size, indicând faptul că o singură imagine va fi trimisă pentru predicție. Valoarea acestei dimensiuni este 1, deoarece facem predicția pe o singură imagine.
Vei parcurge acești pași de preprocesare pe măsură ce pregătești imaginea câinelui (pe nume Ivy) pentru a putea fi clasificată de ResNet50.
Acest exercițiu face parte din cursul
Introducere în Deep Learning cu Keras
Instrucțiuni pentru exercițiu
- Importă
imagedintensorflow.keras.preprocessingșipreprocess_inputdintensorflow.keras.applications.resnet50. - Încarcă imaginea cu valoarea corectă pentru
target_size, potrivită modelului tău. - Convertește-o într-un array folosind
image.img_to_array(). - Preprocesează
img_expandedîn același mod în care au fost procesate imaginile originale de antrenament ale ResNet50, folosindpreprocess_input().
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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 = ____(____)