Clasificación de imágenes con ResNet
Has creado el modelo a partir del ResNet18 preentrenado. Ahora es el momento de probarlo con una imagen de ejemplo.
Vas a aplicar transformaciones de preprocesamiento a una imagen y clasificarla. Deberás utilizar la capa « softmax()
» seguida de « argmax()
», ya que ResNet18 se ha entrenado con un conjunto de datos multiclase.
Has seleccionado la siguiente imagen para realizar la prueba de predicción:
La transformación de preprocesamiento se guarda como « preprocess
». La imagen PIL se ha subido como img
.
Este ejercicio forma parte del curso
Aprendizaje profundo para imágenes con PyTorch
Instrucciones del ejercicio
- Aplica las transformaciones de preprocesamiento a la imagen y dale una nueva forma utilizando
.unsqueeze(0)
para añadir la dimensión por lotes. - Pasa la imagen por el modelo, remodela la salida utilizando «
.squeeze(0)
» (Reducir a una dimensión) para eliminar la dimensión por lotes y añade una capa «softmax()
» (Reducir a una dimensión). - Aplica
argmax()
para seleccionar la clase con mayor probabilidad.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# Apply preprocessing transforms
batch = ____.____
# Apply model with softmax layer
prediction = ____.____.____
# Apply argmax
class_id = prediction.____.item()
score = prediction[class_id].item()
category_name = weights.meta["categories"][class_id]
print(category_name)