Bắt đầu ngayBắt đầu miễn phí

Huấn luyện mô hình đa đầu ra

Khi huấn luyện các mô hình có nhiều đầu ra, điều quan trọng là phải định nghĩa đúng hàm mất mát.

Trong trường hợp này, mô hình tạo ra hai đầu ra: dự đoán cho bảng chữ cái và cho ký tự. Với mỗi đầu ra, có nhãn ground truth tương ứng, cho phép bạn tính hai mất mát riêng biệt: một do phân loại bảng chữ cái sai và một do phân loại ký tự sai. Vì cả hai đều là bài toán phân loại đa lớp, bạn có thể áp dụng mất mát Cross-Entropy cho từng cái.

Tuy nhiên, gradient descent chỉ có thể tối ưu một hàm mất mát. Do đó, bạn sẽ định nghĩa tổng mất mát là tổng của mất mát bảng chữ cái và mất mát ký tự.

Bài tập này là một phần của khóa học

Deep Learning nâng cao với PyTorch

Xem khóa học

Hướng dẫn bài tập

  • Tính mất mát phân loại bảng chữ cái và gán vào loss_alpha.
  • Tính mất mát phân loại ký tự và gán vào loss_char.
  • Tính tổng mất mát bằng tổng của hai mất mát thành phần và gán vào loss.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

net = Net()
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.05)

for epoch in range(1):
    for images, labels_alpha, labels_char in dataloader_train:
        optimizer.zero_grad()
        outputs_alpha, outputs_char = net(images)
        # Compute alphabet classification loss
        loss_alpha = ____
        # Compute character classification loss
        loss_char = ____
        # Compute total loss
        loss = ____
        loss.backward()
        optimizer.step()
Chỉnh sửa và Chạy Mã