Skryté vrstvy a parametry

Introduction to Deep Learning with PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Skládání vrstev pomocí 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)
)
  • Vstup prochází lineárními vrstvami
  • Vrstvy uvnitř nn.Sequential() jsou skryté vrstvy
Introduction to Deep Learning with PyTorch

Skládání vrstev pomocí 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  
)
  • Vstup prochází lineárními vrstvami
  • Vrstvy uvnitř nn.Sequential() jsou skryté vrstvy
  • n_features a n_classes jsou definovány datovou sadou
Introduction to Deep Learning with PyTorch

Přidávání vrstev

Ilustrace neuronové sítě se dvěma skrytými vrstvami

Introduction to Deep Learning with PyTorch

Přidávání vrstev

Ilustrace neuronové sítě se čtyřmi skrytými vrstvami

Introduction to Deep Learning with PyTorch

Přidávání vrstev

Ilustrace neuronové sítě se čtyřmi skrytými vrstvami

Introduction to Deep Learning with PyTorch

Přidávání vrstev

Ilustrace neuronové sítě se čtyřmi skrytými vrstvami

Introduction to Deep Learning with PyTorch

Přidávání vrstev

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

Přidávání vrstev

# 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)
)
  • Vstup 10 ➡ výstup 18 ➡ výstup 20 ➡ Výstup 5
Introduction to Deep Learning with PyTorch

Přidávání vrstev

# 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)
)
  • Vstup 10 ➡ výstup 18 ➡ výstup 20 ➡ Výstup 5
Introduction to Deep Learning with PyTorch

Přidávání vrstev

# 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
)
  • Vstup 10 ➡ výstup 18 ➡ výstup 20 ➡ Výstup 5
Introduction to Deep Learning with PyTorch

Vrstvy jsou tvořeny neurony

$$

  • Plně propojená vrstva: každý neuron je spojen se všemi neurony předchozí vrstvy

Ilustrace vstupní a výstupní vrstvy se šipkami spojujícími vrstvy

Introduction to Deep Learning with PyTorch

Vrstvy jsou tvořeny neurony

$$

  • Plně propojená vrstva: každý neuron je spojen se všemi neurony předchozí vrstvy

$$

  • Neuron v lineární vrstvě:

Ilustrace vstupní a výstupní vrstvy se šipkami a zvýrazněným výstupním neuronem

Introduction to Deep Learning with PyTorch

Vrstvy jsou tvořeny neurony

$$

  • Plně propojená vrstva: každý neuron je spojen se všemi neurony předchozí vrstvy

$$

  • Neuron v lineární vrstvě:
    • Provádí lineární operaci s využitím všech neuronů předchozí vrstvy

Ilustrace vstupní a výstupní vrstvy se šipkami, zvýrazněným výstupním neuronem a zvýrazněnými šipkami

Introduction to Deep Learning with PyTorch

Vrstvy jsou tvořeny neurony

$$

  • Plně propojená vrstva: každý neuron je spojen se všemi neurony předchozí vrstvy

$$

  • Neuron v lineární vrstvě:
    • Provádí lineární operaci s využitím všech neuronů předchozí vrstvy
    • N+1 parametrů: N ze vstupů a 1 pro bias

N+1

Introduction to Deep Learning with PyTorch

Parametry a kapacita modelu

  • Více skrytých vrstev = více parametrů = vyšší kapacita modelu

$$

Blok kódu pro dvouvrstvou síť

Introduction to Deep Learning with PyTorch

Parametry a kapacita modelu

  • Více skrytých vrstev = více parametrů = vyšší kapacita modelu

$$

Blok kódu pro dvouvrstvou síť

$$

Ruční výpočet parametrů:

  • První vrstva má 4 neurony, každý neuron má 8+1 parametrů. 9 × 4 = 36 parametrů
Introduction to Deep Learning with PyTorch

Parametry a kapacita modelu

  • Více skrytých vrstev = více parametrů = vyšší kapacita modelu

$$

Blok kódu pro dvouvrstvou síť

$$

Ruční výpočet parametrů:

  • První vrstva má 4 neurony, každý neuron má 8+1 parametrů. 9 × 4 = 36 parametrů
Introduction to Deep Learning with PyTorch

Parametry a kapacita modelu

  • Více skrytých vrstev = více parametrů = vyšší kapacita modelu

$$

Blok kódu pro dvouvrstvou síť

$$

Ruční výpočet parametrů:

  • První vrstva má 4 neurony, každý neuron má 8+1 parametrů. 9 × 4 = 36 parametrů
  • Druhá vrstva má 2 neurony, každý neuron má 4+1 parametrů. 5 × 2 = 10 parametrů
Introduction to Deep Learning with PyTorch

Parametry a kapacita modelu

  • Více skrytých vrstev = více parametrů = vyšší kapacita modelu

$$

Blok kódu pro dvouvrstvou síť

$$

Ruční výpočet parametrů:

  • První vrstva má 4 neurony, každý neuron má 8+1 parametrů. 9 × 4 = 36 parametrů
  • Druhá vrstva má 2 neurony, každý neuron má 4+1 parametrů. 5 × 2 = 10 parametrů
  • 36 + 10 = 46 trénovatelných parametrů
Introduction to Deep Learning with PyTorch

Parametry a kapacita modelu

  • Více skrytých vrstev = více parametrů = vyšší kapacita modelu

$$

Blok kódu pro dvouvrstvou síť

$$

Pomocí PyTorch:

  • .numel(): vrátí počet prvků v tensoru
total = 0
for parameter in model.parameters():
    total += parameter.numel()
print(total)
46
Introduction to Deep Learning with PyTorch

Rovnováha mezi složitostí a efektivitou

Rovnováha mezi složitostí a efektivitou

Introduction to Deep Learning with PyTorch

Pojďme si procvičit!

Introduction to Deep Learning with PyTorch

Preparing Video For Download...