Ç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
PyTorch ile Orta Düzey Deep Learning
kursunun bir parçasıdırEgzersiz 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ı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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()