Mallin Arviointi
Arviointiin valmistautuminen
Ennen kuin aloitat arviointiprosessin testijoukolla, varmista seuraavat asiat:
-
Aseta malli arviointitilaan: käytä
model.eval()
poistaaksesi käytöstä ominaisuudet kuten dropout ja batch normalization, jotta arvioinnin aikana käyttäytyminen on johdonmukaista; -
Poista gradienttien seuranta käytöstä: käytä
torch.no_grad()
säästääksesi muistia ja nopeuttaaksesi laskentaa, koska arvioinnissa gradientteja ei tarvita.
# 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)
Ennusteiden muuntaminen
Kuten aiemmin mainittiin, mallin tuotos on logitit (raaka-arvot). Ennustettujen luokkien tunnisteiden saamiseksi käytetään torch.argmax
-funktiota, joka palauttaa suurimman arvon indeksin luokkadimensiolla.
# Convert logits to predicted class labels
predicted_labels = torch.argmax(test_predictions, dim=1)
Mittareiden laskeminen
Luokittelutehtävissä tarkkuus on hyödyllinen lähtömittari, mikäli aineisto on tasapainoinen.
# Calculate accuracy
correct_predictions = (predicted_labels == y_test).sum().item()
accuracy = correct_predictions / len(y_test) * 100
print(f"Test accuracy: {accuracy:.2f}%")
Saadaksesi syvällisempää tietoa mallin suorituskyvystä, voit laskea lisämetriikoita, kuten precision (tarkkuus), recall (herkkyys) ja F1-score. Voit lukea lisää näistä metriikoista ja niiden kaavoista tästä artikkelista käyttäen niiden omia kaavoja.
Koko toteutus
123456789101112131415161718import 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}%")
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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
Mallin Arviointi
Pyyhkäise näyttääksesi valikon
Arviointiin valmistautuminen
Ennen kuin aloitat arviointiprosessin testijoukolla, varmista seuraavat asiat:
-
Aseta malli arviointitilaan: käytä
model.eval()
poistaaksesi käytöstä ominaisuudet kuten dropout ja batch normalization, jotta arvioinnin aikana käyttäytyminen on johdonmukaista; -
Poista gradienttien seuranta käytöstä: käytä
torch.no_grad()
säästääksesi muistia ja nopeuttaaksesi laskentaa, koska arvioinnissa gradientteja ei tarvita.
# 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)
Ennusteiden muuntaminen
Kuten aiemmin mainittiin, mallin tuotos on logitit (raaka-arvot). Ennustettujen luokkien tunnisteiden saamiseksi käytetään torch.argmax
-funktiota, joka palauttaa suurimman arvon indeksin luokkadimensiolla.
# Convert logits to predicted class labels
predicted_labels = torch.argmax(test_predictions, dim=1)
Mittareiden laskeminen
Luokittelutehtävissä tarkkuus on hyödyllinen lähtömittari, mikäli aineisto on tasapainoinen.
# Calculate accuracy
correct_predictions = (predicted_labels == y_test).sum().item()
accuracy = correct_predictions / len(y_test) * 100
print(f"Test accuracy: {accuracy:.2f}%")
Saadaksesi syvällisempää tietoa mallin suorituskyvystä, voit laskea lisämetriikoita, kuten precision (tarkkuus), recall (herkkyys) ja F1-score. Voit lukea lisää näistä metriikoista ja niiden kaavoista tästä artikkelista käyttäen niiden omia kaavoja.
Koko toteutus
123456789101112131415161718import 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}%")
Kiitos palautteestasi!