Στόχος: να διαχωρίσετε σαφώς εκπαίδευση, επικύρωση, αποθήκευση και μετρικές.
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 που χρησιμοποιήσατε στην τάξη: το μάθημά σας σας περιμένει, δεν χρειάζεται να ξαναβάλετε τον κωδικό.
ΣύνδεσηΔεν έχετε λογαριασμό; Δημιουργήστε ένανΟι πρώτες ενότητες του μαθήματος είναι σε ελεύθερη πρόσβαση. Για τη συνέχεια υπάρχουν τρεις δρόμοι: αγοράστε αυτό το μάθημα μία φορά, κάντε συνδρομή, ή εισαγάγετε τον κωδικό που δόθηκε στην τάξη.