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
PyTorch ile Orta Düzey Deep Learning
kursunun bir parçasıdırEgzersiz 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ı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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