Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Mallin Arviointi | Neuroverkot PyTorchissa
Pytorchin Perusteet

bookMallin Arviointi

Arviointiin valmistautuminen

Ennen kuin aloitat arviointiprosessin testijoukolla, varmista seuraavat asiat:

  1. 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;

  2. 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

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

Mikä seuraavista vaiheista on välttämätön arvioitaessa koulutettua PyTorch-mallia?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

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

bookMallin Arviointi

Pyyhkäise näyttääksesi valikon

Arviointiin valmistautuminen

Ennen kuin aloitat arviointiprosessin testijoukolla, varmista seuraavat asiat:

  1. 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;

  2. 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

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

Mikä seuraavista vaiheista on välttämätön arvioitaessa koulutettua PyTorch-mallia?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3
some-alt