Introductie tot Deep Learning met PyTorch
Jasmin Ludolf
Senior Data Science Content Developer, DataCamp
$$
| Percentage data | Rol | |
|---|---|---|
| Training | 80-90% | Stelt modelparameters af |
| Validatie | 10-20% | Stemt hyperparameters af |
| Test | 5-10% | Beoordeelt uiteindelijke modelprestatie |
$$
$$
Per epoch:
training_loss = 0.0for inputs, labels in trainloader: # Voer de forward pass uit outputs = model(inputs) # Bereken de loss loss = criterion(outputs, labels)# Backpropagation loss.backward() # Bereken gradiënten optimizer.step() # Werk gewichten bij optimizer.zero_grad() # Reset gradiënten# Bereken en tel de loss op training_loss += loss.item()epoch_loss = training_loss / len(trainloader)
validation_loss = 0.0 model.eval() # Zet model in evaluatiemoduswith torch.no_grad(): # Schakel gradiënten uit voor efficiëntiefor inputs, labels in validationloader: # Voer de forward pass uit outputs = model(inputs) # Bereken de loss loss = criterion(outputs, labels) validation_loss += loss.item() epoch_loss = validation_loss / len(validationloader) # Bereken gemiddelde lossmodel.train() # Schakel terug naar trainingmodus

import torchmetrics# Maak accuracymetriek metric = torchmetrics.Accuracy(task="multiclass", num_classes=3)for features, labels in dataloader: outputs = model(features) # Forward pass # Bereken batch-accuracy (met argmax voor one-hot labels) metric.update(outputs, labels.argmax(dim=-1))# Bereken accuracy over de hele epoch accuracy = metric.compute()# Reset metriek voor de volgende epoch metric.reset()
Introductie tot Deep Learning met PyTorch