PyTorch मॉडल
आप मॉडल आर्किटेक्चर को परिभाषित करने के लिए OOP अप्रोच का उपयोग करेंगे। ध्यान रखें कि इसके लिए एक मॉडल क्लास सेटअप करना और उसके भीतर दो मेथड परिभाषित करना ज़रूरी है:
.__init__(), जिसमें आप वे लेयर्स परिभाषित करते हैं जिन्हें आप उपयोग करना चाहते हैं;forward(), जिसमें आप यह परिभाषित करते हैं कि मॉडल को इनपुट मिलने पर क्या होता है; यहीं आप इनपुट्स को पहले से परिभाषित लेयर्स से पास करते हैं।
आइए तीन लीनियर लेयर्स और ReLU एक्टिवेशन वाला एक मॉडल बनाते हैं। आख़िरी लीनियर लेयर के बाद, आपको इसके बजाय sigmoid एक्टिवेशन चाहिए, जो हमारे water potability प्रेडिक्शन जैसे बाइनरी क्लासिफिकेशन कार्यों के लिए उपयुक्त है। यहाँ nn.Sequential() का उपयोग करके परिभाषित किया गया मॉडल दिया है, जिससे आप शायद पहले से परिचित हैं:
net = nn.Sequential(
nn.Linear(9, 16),
nn.ReLU(),
nn.Linear(16, 8),
nn.ReLU(),
nn.Linear(8, 1),
nn.Sigmoid(),
)
अब इसी मॉडल को एक क्लास के रूप में फिर से लिखते हैं!
यह अभ्यास पाठ्यक्रम का हिस्सा है
इंटरमीडिएट Deep Learning with PyTorch
अभ्यास निर्देश
.__init__()मेथड में, दिए गए मॉडल डेफिनिशन के अनुरूप डायमेंशन्स के साथ तीनों लीनियर लेयर्स परिभाषित करें और उन्हें क्रमशःself.fc1,self.fc2, औरself.fc3को असाइन करें।forward()मेथड में, मॉडल इनपुटxको सभी लेयर्स से पास करें और उनके ऊपर एक्टिवेशन लगाना न भूलें, ठीक वैसे ही जैसे पहली लेयर के लिए पहले से किया गया है.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
import torch.nn as nn
import torch.nn.functional as F
class Net(nn.Module):
def __init__(self):
super().__init__()
# Define the three linear layers
self.fc1 = ____
self.fc2 = ____
self.fc3 = ____
def forward(self, x):
# Pass x through linear layers adding activations
x = nn.functional.relu(self.fc1(x))
x = ____
x = ____
return x