मल्टी-आउटपुट मॉडलों का प्रशिक्षण
जब आप कई आउटपुट वाले मॉडलों को ट्रेन करते हैं, तो यह सुनिश्चित करना अहम है कि loss फंक्शन सही तरह परिभाषित हो.
इस केस में, मॉडल दो आउटपुट देता है: alphabet और character की भविष्यवाणियाँ. इन दोनों के लिए संबंधित ground truth लेबल मौजूद हैं, जिनकी मदद से आप दो अलग-अलग loss निकालेंगे: एक गलत alphabet classification से होने वाला, और दूसरा गलत character classification से. चूँकि दोनों ही मामलों में आप multi-label classification टास्क से निपट रहे हैं, इसलिए हर बार Cross-Entropy loss लागू किया जा सकता है.
हालाँकि, gradient descent एक समय में केवल एक loss फंक्शन को ऑप्टिमाइज़ कर सकता है. इसलिए आप कुल loss को alphabet और character वाले दोनों losses के योग के रूप में परिभाषित करेंगे.
यह अभ्यास पाठ्यक्रम का हिस्सा है
इंटरमीडिएट Deep Learning with PyTorch
अभ्यास निर्देश
- alphabet classification का loss निकालकर
loss_alphaको असाइन करें. - character classification का loss निकालकर
loss_charको असाइन करें. - कुल loss को दोनों partial losses के योग के रूप में कंप्यूट करके
lossको असाइन करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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()