शुरू करेंमुफ़्त में शुरू करें

Initialization और activation

Unstable (vanishing या exploding) gradients की समस्याएँ डीप न्यूरल नेटवर्क्स को ट्रेन करते समय अक्सर आती हैं. इस अभ्यास और आगे वाले में, आप water potability classification टास्क के लिए बनाए गए अपने मॉडल आर्किटेक्चर का विस्तार करेंगे ताकि वह इन समस्याओं के प्रति अधिक मज़बूत हो जाए.

पहले कदम के रूप में, आप He (Kaiming) initialization strategy से weights initialization को बेहतर करेंगे. ऐसा करने के लिए, आपको torch.nn.init मॉड्यूल से उचित initializer कॉल करना होगा, जिसे आपके लिए init नाम से import किया गया है. इसके बाद, आप activation functions को डिफ़ॉल्ट ReLU से बदलकर अक्सर बेहतर साबित होने वाले ELU पर अपडेट करेंगे.

यह अभ्यास पाठ्यक्रम का हिस्सा है

इंटरमीडिएट Deep Learning with PyTorch

पाठ्यक्रम देखें

अभ्यास निर्देश

  • दूसरे लेयर fc2 के weight attribute पर He (Kaiming) initializer कॉल करें, ठीक वैसे ही जैसे fc1 के लिए किया गया है.
  • तीसरे लेयर fc3 के weight attribute पर He (Kaiming) initializer कॉल करें, और अंतिम लेयर में प्रयुक्त अलग activation function का ध्यान रखें.
  • forward() मेथड में activation functions को relu से बदलकर elu कर दें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

class Net(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc1 = nn.Linear(9, 16)
        self.fc2 = nn.Linear(16, 8)
        self.fc3 = nn.Linear(8, 1)
        
        # Apply He initialization
        init.kaiming_uniform_(self.fc1.weight)
        ____(____)
        ____(____, ____)

    def forward(self, x):
        # Update ReLU activation to ELU
        x = nn.functional.relu(self.fc1(x))
        x = nn.functional.relu(self.fc2(x))
        x = nn.functional.sigmoid(self.fc3(x))
        return x
कोड संपादित करें और चलाएँ