Başlatma ve aktivasyon
Kararsız (kaybolan veya taşan) gradyan sorunları, derin sinir ağlarını eğitirken sıkça karşılaşılan bir zorluktur. Bu ve sonraki egzersizlerde, su içilebilirliği sınıflandırma görevi için kurduğun mimariyi genişleterek bu sorunlara karşı daha dayanıklı hale getireceksin.
İlk adım olarak, ağırlık başlatmayı He (Kaiming) başlatma stratejisiyle iyileştireceksin. Bunu yapmak için, senin için init olarak içe aktarılmış olan torch.nn.init modülünden uygun başlatıcıyı çağırman gerekecek. Sonrasında, varsayılan ReLU yerine çoğunlukla daha iyi sonuç veren ELU aktivasyon fonksiyonlarına geçiş yapacaksın.
Bu egzersiz, kursun bir parçasıdır
PyTorch ile Orta Düzey Deep Learning
Egzersiz talimatları
fc1için yapıldığı gibi, ikinci katmanınfc2ağırlık özniteliğine He (Kaiming) başlatıcısını uygula.- Son katmanda kullanılan farklı aktivasyon fonksiyonunu dikkate alarak, üçüncü katmanın
fc3ağırlık özniteliğine He (Kaiming) başlatıcısını uygula. forward()metodundaki aktivasyon fonksiyonlarınıreluyerineeluolacak şekilde güncelle.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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