Lapisan tersembunyi dan parameter

Pengantar Deep Learning dengan PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Menumpuk lapisan dengan nn.Sequential()

# Create network with three linear layers
model = nn.Sequential(

nn.Linear(n_features, 8),
nn.Linear(8, 4), nn.Linear(4, n_classes)
)
  • Input diteruskan melalui lapisan linear
  • Lapisan dalam nn.Sequential() adalah lapisan tersembunyi
Pengantar Deep Learning dengan PyTorch

Menumpuk lapisan dengan nn.Sequential()

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(n_features, 8), # n_features represents number of input features
    nn.Linear(8, 4),
    nn.Linear(4, n_classes) # n_classes represents the number of output classes  
)
  • Input diteruskan melalui lapisan linear
  • Lapisan dalam nn.Sequential() adalah lapisan tersembunyi
  • n_features dan n_classes ditentukan oleh dataset
Pengantar Deep Learning dengan PyTorch

Menambah lapisan

Ilustrasi jaringan saraf dengan dua lapisan tersembunyi

Pengantar Deep Learning dengan PyTorch

Menambah lapisan

Ilustrasi jaringan saraf dengan empat lapisan tersembunyi

Pengantar Deep Learning dengan PyTorch

Menambah lapisan

Ilustrasi jaringan saraf dengan empat lapisan tersembunyi

Pengantar Deep Learning dengan PyTorch

Menambah lapisan

Ilustrasi jaringan saraf dengan empat lapisan tersembunyi

Pengantar Deep Learning dengan PyTorch

Menambah lapisan

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20),
    nn.Linear(20, 5)
)
Pengantar Deep Learning dengan PyTorch

Menambah lapisan

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18), # Takes 10 features and outputs 18
    nn.Linear(18, 20),
    nn.Linear(20, 5)
)
  • Input 10 ➡ output 18 ➡ output 20 ➡ Output 5
Pengantar Deep Learning dengan PyTorch

Menambah lapisan

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20), # Takes 18 and outputs 20
    nn.Linear(20, 5)
)
  • Input 10 ➡ output 18 ➡ output 20 ➡ Output 5
Pengantar Deep Learning dengan PyTorch

Menambah lapisan

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20),
    nn.Linear(20, 5) # Takes 20 and outputs 5
)
  • Input 10 ➡ output 18 ➡ output 20 ➡ Output 5
Pengantar Deep Learning dengan PyTorch

Lapisan terdiri dari neuron

$$

  • Fully connected saat tiap neuron terhubung ke semua neuron di lapisan sebelumnya

Ilustrasi lapisan input dan output dengan panah yang menghubungkan lapisan

Pengantar Deep Learning dengan PyTorch

Lapisan terdiri dari neuron

$$

  • Fully connected saat tiap neuron terhubung ke semua neuron di lapisan sebelumnya

$$

  • Sebuah neuron pada lapisan linear:

Ilustrasi lapisan input dan output dengan panah yang menghubungkan lapisan dan lingkaran pada satu neuron output

Pengantar Deep Learning dengan PyTorch

Lapisan terdiri dari neuron

$$

  • Fully connected saat tiap neuron terhubung ke semua neuron di lapisan sebelumnya

$$

  • Sebuah neuron pada lapisan linear:
    • Melakukan operasi linear menggunakan semua neuron dari lapisan sebelumnya

Ilustrasi lapisan input dan output dengan panah yang menghubungkan lapisan, satu neuron output dilingkari dan panah disorot

Pengantar Deep Learning dengan PyTorch

Lapisan terdiri dari neuron

$$

  • Fully connected saat tiap neuron terhubung ke semua neuron di lapisan sebelumnya

$$

  • Sebuah neuron pada lapisan linear:
    • Melakukan operasi linear menggunakan semua neuron dari lapisan sebelumnya
    • Memiliki N+1 parameter: N dari input dan 1 untuk bias

N+1

Pengantar Deep Learning dengan PyTorch

Parameter dan kapasitas model

  • Lebih banyak lapisan tersembunyi = lebih banyak parameter = kapasitas model lebih tinggi

$$

Blok kode untuk jaringan dua lapisan

Pengantar Deep Learning dengan PyTorch

Parameter dan kapasitas model

  • Lebih banyak lapisan tersembunyi = lebih banyak parameter = kapasitas model lebih tinggi

$$

Blok kode untuk jaringan dua lapisan

$$

Perhitungan parameter manual:

  • Lapisan pertama memiliki 4 neuron, tiap neuron punya 8+1 parameter. 9 kali 4 = 36 parameter
Pengantar Deep Learning dengan PyTorch

Parameter dan kapasitas model

  • Lebih banyak lapisan tersembunyi = lebih banyak parameter = kapasitas model lebih tinggi

$$

Blok kode untuk jaringan dua lapisan

$$

Perhitungan parameter manual:

  • Lapisan pertama memiliki 4 neuron, tiap neuron punya 8+1 parameter. 9 kali 4 = 36 parameter
Pengantar Deep Learning dengan PyTorch

Parameter dan kapasitas model

  • Lebih banyak lapisan tersembunyi = lebih banyak parameter = kapasitas model lebih tinggi

$$

Blok kode untuk jaringan dua lapisan

$$

Perhitungan parameter manual:

  • Lapisan pertama memiliki 4 neuron, tiap neuron punya 8+1 parameter. 9 kali 4 = 36 parameter
  • Lapisan kedua memiliki 2 neuron, tiap neuron punya 4+1 parameter. 5 kali 2 = 10 parameter
Pengantar Deep Learning dengan PyTorch

Parameter dan kapasitas model

  • Lebih banyak lapisan tersembunyi = lebih banyak parameter = kapasitas model lebih tinggi

$$

Blok kode untuk jaringan dua lapisan

$$

Perhitungan parameter manual:

  • Lapisan pertama memiliki 4 neuron, tiap neuron punya 8+1 parameter. 9 kali 4 = 36 parameter
  • Lapisan kedua memiliki 2 neuron, tiap neuron punya 4+1 parameter. 5 kali 2 = 10 parameter
  • 36 + 10 = 46 parameter yang dapat dipelajari
Pengantar Deep Learning dengan PyTorch

Parameter dan kapasitas model

  • Lebih banyak lapisan tersembunyi = lebih banyak parameter = kapasitas model lebih tinggi

$$

Blok kode untuk jaringan dua lapisan

$$

Menggunakan PyTorch:

  • .numel(): mengembalikan jumlah elemen dalam tensor
total = 0
for parameter in model.parameters():
    total += parameter.numel()
print(total)
46
Pengantar Deep Learning dengan PyTorch

Menyeimbangkan kompleksitas dan efisiensi

Keseimbangan antara kompleksitas dan efisiensi

Pengantar Deep Learning dengan PyTorch

Ayo berlatih!

Pengantar Deep Learning dengan PyTorch

Preparing Video For Download...