Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Valutazione del Modello | Reti Neurali in PyTorch
Fondamenti di PyTorch

bookValutazione del Modello

Preparazione per la Valutazione

Prima di iniziare il processo di valutazione sul test set, è necessario assicurarsi di quanto segue:

  1. Impostare il modello in modalità valutazione: utilizzare model.eval() per disattivare funzionalità come dropout e batch normalization, garantendo un comportamento coerente durante la valutazione;

  2. Disabilitare il tracciamento dei gradienti: utilizzare torch.no_grad() per risparmiare memoria e velocizzare i calcoli, poiché i gradienti non sono necessari durante la valutazione.

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

Conversione delle Predizioni

Come già menzionato in precedenza, l'output del modello sarà costituito da logits (punteggi grezzi). Per ottenere le etichette di classe previste, si utilizza torch.argmax per estrarre l'indice del valore massimo lungo la dimensione delle classi.

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

Calcolo delle Metriche

Per i problemi di classificazione, l'accuratezza è una metrica iniziale utile, a condizione che il dataset sia bilanciato.

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

Per ottenere una comprensione più approfondita delle prestazioni del modello, è possibile calcolare metriche aggiuntive come precisione, richiamo e F1-score. Puoi approfondire queste metriche e le loro formule in questo articolo, utilizzando le rispettive formule.

Implementazione 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

Quale dei seguenti passaggi è necessario durante la valutazione di un modello PyTorch addestrato?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

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

bookValutazione del Modello

Scorri per mostrare il menu

Preparazione per la Valutazione

Prima di iniziare il processo di valutazione sul test set, è necessario assicurarsi di quanto segue:

  1. Impostare il modello in modalità valutazione: utilizzare model.eval() per disattivare funzionalità come dropout e batch normalization, garantendo un comportamento coerente durante la valutazione;

  2. Disabilitare il tracciamento dei gradienti: utilizzare torch.no_grad() per risparmiare memoria e velocizzare i calcoli, poiché i gradienti non sono necessari durante la valutazione.

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

Conversione delle Predizioni

Come già menzionato in precedenza, l'output del modello sarà costituito da logits (punteggi grezzi). Per ottenere le etichette di classe previste, si utilizza torch.argmax per estrarre l'indice del valore massimo lungo la dimensione delle classi.

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

Calcolo delle Metriche

Per i problemi di classificazione, l'accuratezza è una metrica iniziale utile, a condizione che il dataset sia bilanciato.

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

Per ottenere una comprensione più approfondita delle prestazioni del modello, è possibile calcolare metriche aggiuntive come precisione, richiamo e F1-score. Puoi approfondire queste metriche e le loro formule in questo articolo, utilizzando le rispettive formule.

Implementazione 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

Quale dei seguenti passaggi è necessario durante la valutazione di un modello PyTorch addestrato?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 3
some-alt