Ένας Επαγγελματικός PyTorch Training Loop

2 λεπτά

Στόχος: να διαχωρίσετε σαφώς εκπαίδευση, επικύρωση, αποθήκευση και μετρικές.

Ένα epoch εκπαίδευσης

python
def train_epoch(model, loader, criterion, optimizer, device):
    model.train()
    total_loss = 0.0
    for x, y in loader:
        x, y = x.to(device), y.to(device)
        optimizer.zero_grad(set_to_none=True)
        logits = model(x)
        loss = criterion(logits, y)
        loss.backward()
        optimizer.step()
        total_loss += loss.item() * x.size(0)
    return total_loss / len(loader.dataset)

Ο πολλαπλασιασμός με x.size(0) ανακατασκευάζει το άθροισμα ανά παράδειγμα πριν από τον συνολικό μέσο. Ένας αφελής μέσος των μέσων των batches μεροληπτεί υπέρ του τελευταίου batch αν είναι μικρότερο.

Προεπισκόπηση — η συνέχεια του μαθήματος είναι διαθέσιμη στους εγγεγραμμένους.

Έχετε ήδη εγγραφεί με κωδικό;

Η πρόσβασή σας συνδέεται με τον λογαριασμό σας, όχι με αυτόν τον σύνδεσμο. Συνδεθείτε με το ίδιο email που χρησιμοποιήσατε στην τάξη: το μάθημά σας σας περιμένει, δεν χρειάζεται να ξαναβάλετε τον κωδικό.

ΣύνδεσηΔεν έχετε λογαριασμό; Δημιουργήστε έναν
Αυτό το μάθημα ανήκει στην ενότητα «Αφήστε το Δίκτυο να Μάθει»

Οι πρώτες ενότητες του μαθήματος είναι σε ελεύθερη πρόσβαση. Για τη συνέχεια υπάρχουν τρεις δρόμοι: αγοράστε αυτό το μάθημα μία φορά, κάντε συνδρομή, ή εισαγάγετε τον κωδικό που δόθηκε στην τάξη.

Συνδρομή — 19 $ US/μήναΕπιστροφή στο πλάνο
Είστε φοιτητής σε αυτό το μάθημα;

Ο κωδικός συνδέεται με τον λογαριασμό σας: συνδεθείτε ή δημιουργήστε λογαριασμό και θα εφαρμοστεί αυτόματα όταν επιστρέψετε.

Δεν έχετε λογαριασμό; Δημιουργήστε έναν