MulaiMulai sekarang secara gratis

Inisialisasi dan aktivasi

Masalah gradien yang tidak stabil (menghilang atau meledak) adalah tantangan yang sering muncul saat melatih deep neural network. Dalam latihan ini dan berikutnya, Anda akan memperluas arsitektur model yang Anda bangun untuk tugas klasifikasi kelayakan air minum agar lebih kebal terhadap masalah tersebut.

Sebagai langkah pertama, Anda akan memperbaiki inisialisasi bobot dengan menggunakan strategi inisialisasi He (Kaiming). Untuk melakukannya, Anda perlu memanggil initializer yang sesuai dari modul torch.nn.init, yang telah diimpor untuk Anda sebagai init. Selanjutnya, Anda akan memperbarui fungsi aktivasi dari ReLU bawaan ke ELU yang seringkali lebih baik.

Latihan ini adalah bagian dari kursus

Deep Learning Lanjutan dengan PyTorch

Lihat Kursus

Petunjuk latihan

  • Panggil initializer He (Kaiming) pada atribut bobot layer kedua, fc2, serupa dengan yang dilakukan untuk fc1.
  • Panggil initializer He (Kaiming) pada atribut bobot layer ketiga, fc3, dengan mempertimbangkan perbedaan fungsi aktivasi yang digunakan pada layer akhir.
  • Perbarui fungsi aktivasi dalam metode forward() dari relu menjadi elu.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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
Edit dan Jalankan Kode