Çoklu çıktı veren modelleri eğitme
Birden fazla çıktısı olan modelleri eğitirken, kayıp fonksiyonunun doğru tanımlandığından emin olmak kritik önem taşır.
Bu durumda, model iki çıktı üretir: alfabe ve karakter için tahminler. Bunların her biri için karşılık gelen gerçek etiketler vardır; bu sayede iki ayrı kaybı hesaplayabilirsin: biri yanlış alfabe sınıflandırmalarından, diğeri ise yanlış karakter sınıflandırmasından kaynaklanan kayıp. Her iki durumda da çok sınıflı bir sınıflandırma göreviyle uğraştığın için, her seferinde Cross-Entropy kaybı uygulanabilir.
Ancak, gradyan inişi yalnızca tek bir kayıp fonksiyonunu optimize edebilir. Bu yüzden toplam kaybı, alfabe ve karakter kayıplarının toplamı olarak tanımlayacaksın.
Bu egzersiz, kursun bir parçasıdır
PyTorch ile Orta Düzey Deep Learning
Egzersiz talimatları
- Alfabe sınıflandırma kaybını hesapla ve
loss_alphadeğişkenine ata. - Karakter sınıflandırma kaybını hesapla ve
loss_chardeğişkenine ata. - Toplam kaybı, iki kısmi kaybın toplamı olarak hesapla ve
lossdeğişkenine ata.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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()