Nhập môn Deep Learning với PyTorch
Jasmin Ludolf
Senior Data Science Content Developer, DataCamp
$$
| Tỷ lệ dữ liệu | Vai trò | |
|---|---|---|
| Training | 80–90% | Điều chỉnh tham số mô hình |
| Validation | 10–20% | Tinh chỉnh siêu tham số |
| Test | 5–10% | Đánh giá hiệu năng mô hình cuối |
$$
$$
Mỗi epoch:
training_loss = 0.0for inputs, labels in trainloader: # Chạy forward pass outputs = model(inputs) # Tính loss loss = criterion(outputs, labels)# Lan truyền ngược loss.backward() # Tính gradient optimizer.step() # Cập nhật trọng số optimizer.zero_grad() # Xóa gradient# Tính và cộng dồn loss training_loss += loss.item()epoch_loss = training_loss / len(trainloader)
validation_loss = 0.0 model.eval() # Đưa model về chế độ đánh giáwith torch.no_grad(): # Tắt gradient để hiệu quả hơnfor inputs, labels in validationloader: # Chạy forward pass outputs = model(inputs) # Tính loss loss = criterion(outputs, labels) validation_loss += loss.item() epoch_loss = validation_loss / len(validationloader) # Tính loss trung bìnhmodel.train() # Chuyển lại chế độ huấn luyện

import torchmetrics# Tạo metric accuracy metric = torchmetrics.Accuracy(task="multiclass", num_classes=3)for features, labels in dataloader: outputs = model(features) # Lan truyền xuôi # Tính accuracy theo batch (giữ argmax cho nhãn one-hot) metric.update(outputs, labels.argmax(dim=-1))# Tính accuracy cho cả epoch accuracy = metric.compute()# Reset metric cho epoch tiếp theo metric.reset()
Nhập môn Deep Learning với PyTorch