Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Evaluación del Modelo | Redes Neuronales en PyTorch
Esenciales de PyTorch

bookEvaluación del Modelo

Preparación para la Evaluación

Antes de comenzar el proceso de evaluación en el conjunto de prueba, es necesario asegurarse de lo siguiente:

  1. Configurar el modelo en modo de evaluación: utilizar model.eval() para desactivar características como dropout y normalización por lotes, garantizando un comportamiento consistente durante la evaluación;

  2. Desactivar el seguimiento de gradientes: utilizar torch.no_grad() para ahorrar memoria y acelerar los cálculos, ya que los gradientes no son necesarios durante la evaluación.

# Set the model to evaluation mode
model.eval()
# Disable gradient computation for evaluation
with torch.no_grad():
    # Forward pass on the test data
    test_predictions = model(X_test)

Conversión de Predicciones

Como se mencionó anteriormente, la salida del modelo serán logits (puntuaciones sin procesar). Para obtener las etiquetas de clase predichas, se utiliza torch.argmax para extraer el índice del valor máximo a lo largo de la dimensión de clases.

# Convert logits to predicted class labels
predicted_labels = torch.argmax(test_predictions, dim=1)

Cálculo de Métricas

Para problemas de clasificación, la precisión es una métrica inicial útil, siempre que el conjunto de datos esté balanceado.

# Calculate accuracy
correct_predictions = (predicted_labels == y_test).sum().item()
accuracy = correct_predictions / len(y_test) * 100
print(f"Test accuracy: {accuracy:.2f}%")

Para obtener una visión más profunda del rendimiento del modelo, puedes calcular métricas adicionales como precisión, recuperación y F1-score. Puedes aprender más sobre estas métricas y sus fórmulas en este artículo, utilizando sus respectivas fórmulas.

Implementación completa

123456789101112131415161718
import torch import os os.system('wget https://staging-content-media-cdn.codefinity.com/courses/1dd2b0f6-6ec0-40e6-a570-ed0ac2209666/section_3/model_training.py 2>/dev/null') from model_training import model, X_test, y_test # Set model to evaluation mode model.eval() # Disable gradient tracking with torch.no_grad(): # Forward pass test_predictions = model(X_test) # Get predicted classes predicted_labels = torch.argmax(test_predictions, dim=1) # Calculate accuracy correct_predictions = (predicted_labels == y_test).sum().item() accuracy = correct_predictions / len(y_test) * 100 print(f"Test accuracy: {accuracy:.2f}%")
copy
question mark

¿Cuál de los siguientes pasos es necesario al evaluar un modelo entrenado de PyTorch?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you explain what precision, recall, and F1-score mean?

How can I calculate precision, recall, and F1-score in PyTorch?

Why is it important to use metrics other than accuracy for imbalanced datasets?

Awesome!

Completion rate improved to 5

bookEvaluación del Modelo

Desliza para mostrar el menú

Preparación para la Evaluación

Antes de comenzar el proceso de evaluación en el conjunto de prueba, es necesario asegurarse de lo siguiente:

  1. Configurar el modelo en modo de evaluación: utilizar model.eval() para desactivar características como dropout y normalización por lotes, garantizando un comportamiento consistente durante la evaluación;

  2. Desactivar el seguimiento de gradientes: utilizar torch.no_grad() para ahorrar memoria y acelerar los cálculos, ya que los gradientes no son necesarios durante la evaluación.

# Set the model to evaluation mode
model.eval()
# Disable gradient computation for evaluation
with torch.no_grad():
    # Forward pass on the test data
    test_predictions = model(X_test)

Conversión de Predicciones

Como se mencionó anteriormente, la salida del modelo serán logits (puntuaciones sin procesar). Para obtener las etiquetas de clase predichas, se utiliza torch.argmax para extraer el índice del valor máximo a lo largo de la dimensión de clases.

# Convert logits to predicted class labels
predicted_labels = torch.argmax(test_predictions, dim=1)

Cálculo de Métricas

Para problemas de clasificación, la precisión es una métrica inicial útil, siempre que el conjunto de datos esté balanceado.

# Calculate accuracy
correct_predictions = (predicted_labels == y_test).sum().item()
accuracy = correct_predictions / len(y_test) * 100
print(f"Test accuracy: {accuracy:.2f}%")

Para obtener una visión más profunda del rendimiento del modelo, puedes calcular métricas adicionales como precisión, recuperación y F1-score. Puedes aprender más sobre estas métricas y sus fórmulas en este artículo, utilizando sus respectivas fórmulas.

Implementación completa

123456789101112131415161718
import torch import os os.system('wget https://staging-content-media-cdn.codefinity.com/courses/1dd2b0f6-6ec0-40e6-a570-ed0ac2209666/section_3/model_training.py 2>/dev/null') from model_training import model, X_test, y_test # Set model to evaluation mode model.eval() # Disable gradient tracking with torch.no_grad(): # Forward pass test_predictions = model(X_test) # Get predicted classes predicted_labels = torch.argmax(test_predictions, dim=1) # Calculate accuracy correct_predictions = (predicted_labels == y_test).sum().item() accuracy = correct_predictions / len(y_test) * 100 print(f"Test accuracy: {accuracy:.2f}%")
copy
question mark

¿Cuál de los siguientes pasos es necesario al evaluar un modelo entrenado de PyTorch?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 3
some-alt