Pengantar Deep Learning dengan PyTorch
Jasmin Ludolf
Senior Data Science Content Developer, DataCamp
$$
| Persentase data | Peran | |
|---|---|---|
| Training | 80-90% | Menyesuaikan parameter model |
| Validation | 10-20% | Menyetel hiperparameter |
| Test | 5-10% | Mengevaluasi kinerja akhir model |
$$
$$
Untuk tiap epoch:
training_loss = 0.0for inputs, labels in trainloader: # Jalankan forward pass outputs = model(inputs) # Hitung loss loss = criterion(outputs, labels)# Backpropagation loss.backward() # Hitung gradien optimizer.step() # Perbarui bobot optimizer.zero_grad() # Reset gradien# Hitung dan jumlahkan loss training_loss += loss.item()epoch_loss = training_loss / len(trainloader)
validation_loss = 0.0 model.eval() # Pindah ke mode evaluasiwith torch.no_grad(): # Nonaktifkan gradien agar efisienfor inputs, labels in validationloader: # Jalankan forward pass outputs = model(inputs) # Hitung loss loss = criterion(outputs, labels) validation_loss += loss.item() epoch_loss = validation_loss / len(validationloader) # Hitung rata-rata lossmodel.train() # Kembali ke mode training

import torchmetrics# Buat metrik akurasi metric = torchmetrics.Accuracy(task="multiclass", num_classes=3)for features, labels in dataloader: outputs = model(features) # Forward pass # Hitung akurasi batch (gunakan argmax untuk label one-hot) metric.update(outputs, labels.argmax(dim=-1))# Hitung akurasi untuk seluruh epoch accuracy = metric.compute()# Reset metrik untuk epoch berikutnya metric.reset()
Pengantar Deep Learning dengan PyTorch