Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Avaliação do Modelo | Redes Neurais no PyTorch
Essenciais do PyTorch

bookAvaliação do Modelo

Preparação para Avaliação

Antes de iniciar o processo de avaliação no conjunto de teste, é necessário garantir o seguinte:

  1. Definir o modelo para o modo de avaliação: utilize model.eval() para desativar recursos como dropout e normalização em lote, assegurando comportamento consistente durante a avaliação;

  2. Desabilitar o rastreamento de gradientes: utilize torch.no_grad() para economizar memória e acelerar os cálculos, já que os gradientes não são necessários durante a avaliação.

# 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)

Convertendo as Previsões

Como já mencionado anteriormente, a saída do modelo será logits (pontuações brutas). Para obter os rótulos de classe previstos, utilizamos torch.argmax para extrair o índice do valor máximo ao longo da dimensão das classes.

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

Cálculo de Métricas

Para problemas de classificação, a acurácia é uma métrica inicial útil, desde que o conjunto de dados seja 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 obter insights mais aprofundados sobre o desempenho do modelo, é possível calcular métricas adicionais como precisão, revocação e F1-score. Saiba mais sobre essas métricas e suas fórmulas neste artigo, utilizando suas respectivas fórmulas.

Implementação 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

Qual das etapas a seguir é necessária ao avaliar um modelo PyTorch treinado?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

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

bookAvaliação do Modelo

Deslize para mostrar o menu

Preparação para Avaliação

Antes de iniciar o processo de avaliação no conjunto de teste, é necessário garantir o seguinte:

  1. Definir o modelo para o modo de avaliação: utilize model.eval() para desativar recursos como dropout e normalização em lote, assegurando comportamento consistente durante a avaliação;

  2. Desabilitar o rastreamento de gradientes: utilize torch.no_grad() para economizar memória e acelerar os cálculos, já que os gradientes não são necessários durante a avaliação.

# 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)

Convertendo as Previsões

Como já mencionado anteriormente, a saída do modelo será logits (pontuações brutas). Para obter os rótulos de classe previstos, utilizamos torch.argmax para extrair o índice do valor máximo ao longo da dimensão das classes.

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

Cálculo de Métricas

Para problemas de classificação, a acurácia é uma métrica inicial útil, desde que o conjunto de dados seja 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 obter insights mais aprofundados sobre o desempenho do modelo, é possível calcular métricas adicionais como precisão, revocação e F1-score. Saiba mais sobre essas métricas e suas fórmulas neste artigo, utilizando suas respectivas fórmulas.

Implementação 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

Qual das etapas a seguir é necessária ao avaliar um modelo PyTorch treinado?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 3
some-alt