MulaiMulai sekarang secara gratis

Melatih model multi-output

Saat melatih model dengan banyak keluaran, sangat penting untuk memastikan bahwa fungsi loss didefinisikan dengan benar.

Dalam kasus ini, model menghasilkan dua keluaran: prediksi untuk alfabet dan karakter. Untuk masing-masing, terdapat label ground truth yang sesuai, yang memungkinkan Anda menghitung dua loss terpisah: satu akibat kesalahan klasifikasi alfabet, dan satu lagi akibat kesalahan klasifikasi karakter. Karena pada keduanya Anda menangani tugas klasifikasi multi-label, loss Cross-Entropy dapat diterapkan setiap kali.

Namun, gradient descent hanya dapat mengoptimalkan satu fungsi loss. Oleh karena itu, Anda akan mendefinisikan total loss sebagai jumlah dari loss alfabet dan loss karakter.

Latihan ini adalah bagian dari kursus

Deep Learning Lanjutan dengan PyTorch

Lihat Kursus

Petunjuk latihan

  • Hitung loss klasifikasi alfabet dan simpan ke loss_alpha.
  • Hitung loss klasifikasi karakter dan simpan ke loss_char.
  • Hitung total loss sebagai penjumlahan dari dua loss parsial dan simpan ke loss.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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()
Edit dan Jalankan Kode