इमेज क्लासिफायर ट्रेनिंग लूप
अब इमेज क्लासिफायर को ट्रेन करने का समय है! आप पहले परिभाषित किए गए Net का उपयोग करेंगे और इसे सात तरह के बादलों को अलग-अलग पहचानने के लिए ट्रेन करेंगे.
लॉस और ऑप्टिमाइज़र तय करने के लिए, आपको torch.nn और torch.optim की फंक्शंस उपयोग करनी होंगी, जिन्हें क्रमशः nn और optim नाम से आपके लिए इम्पोर्ट किया गया है. आपको ट्रेनिंग लूप में खुद कुछ बदलने की ज़रूरत नहीं है: यह बिल्कुल वैसा ही है जैसा आपने पहले लिखा था, बस ट्रेनिंग के दौरान लॉस प्रिंट करने के लिए कुछ अतिरिक्त लॉजिक जोड़ा गया है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
इंटरमीडिएट Deep Learning with PyTorch
अभ्यास निर्देश
- अपनी
Netक्लास का उपयोग करकेnum_classesको7सेट करें, मॉडल डिफाइन करें और उसेnetमें असाइन करें. - लॉस फंक्शन को क्रॉस-एंट्रॉपी लॉस के रूप में डिफाइन करें और उसे
criterionमें असाइन करें. - ऑप्टिमाइज़र को Adam के रूप में डिफाइन करें, इसमें मॉडल के पैरामीटर्स और
0.001का लर्निंग रेट पास करें, और उसेoptimizerमें असाइन करें. - ट्रेनिंग for-लूप शुरू करें:
dataloader_trainके ट्रेनिंगimagesऔरlabelsपर इटरेट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Define the model
____ = ____
# Define the loss function
____ = ____
# Define the optimizer
____ = ____
for epoch in range(3):
running_loss = 0.0
# Iterate over training batches
____
optimizer.zero_grad()
outputs = net(images)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
running_loss += loss.item()
epoch_loss = running_loss / len(dataloader_train)
print(f"Epoch {epoch+1}, Loss: {epoch_loss:.4f}")