Preparar tu imagen de entrada
El modelo ResNet50 original se entrenó con imágenes de 224 x 224 píxeles y varias operaciones de preprocesado, como la resta del valor medio de píxel del conjunto de entrenamiento para todas las imágenes. Tienes que preprocesar del mismo modo las imágenes sobre las que quieras predecir.
Al predecir con una sola imagen, esta debe ajustarse a la forma de entrada del modelo, que en este caso es:
(batch-size, width, height, channels). np.expand_dims con el parámetro axis = 0 añade la dimensión batch-size, que representa que se pasará una sola imagen a predict. El valor de esta dimensión batch-size es 1, ya que solo estamos prediciendo sobre una imagen.
Seguirás estos pasos de preprocesado para preparar la imagen de este perro (se llama Ivy) y dejarla lista para que ResNet50 pueda clasificarla.
Este ejercicio forma parte del curso
Introducción al Deep Learning con Keras
Instrucciones del ejercicio
- Importa
imagedetensorflow.keras.preprocessingypreprocess_inputdetensorflow.keras.applications.resnet50. - Carga la imagen con el
target_sizeadecuado para tu modelo. - Convierte la imagen a un array con
image.img_to_array(). - Preprocesa
img_expandeddel mismo modo que las imágenes de entrenamiento originales de ResNet50 conpreprocess_input().
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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 = ____(____)