Dolda lager och parametrar

Introduktion till djupinlärning med PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Stapla lager med 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)
)
  • Indata skickas genom de linjära lagren
  • Lager inom nn.Sequential() är dolda lager
Introduktion till djupinlärning med PyTorch

Stapla lager med 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  
)
  • Indata skickas genom de linjära lagren
  • Lager inom nn.Sequential() är dolda lager
  • n_features och n_classes definieras av datamängden
Introduktion till djupinlärning med PyTorch

Lägga till lager

Illustration av ett neuralt nätverk med två dolda lager

Introduktion till djupinlärning med PyTorch

Lägga till lager

Illustration av ett neuralt nätverk med fyra dolda lager

Introduktion till djupinlärning med PyTorch

Lägga till lager

Illustration av ett neuralt nätverk med fyra dolda lager

Introduktion till djupinlärning med PyTorch

Lägga till lager

Illustration av ett neuralt nätverk med fyra dolda lager

Introduktion till djupinlärning med PyTorch

Lägga till lager

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20),
    nn.Linear(20, 5)
)
Introduktion till djupinlärning med PyTorch

Lägga till lager

# 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)
)
  • Indata 10 ➡ utdata 18 ➡ utdata 20 ➡ Utdata 5
Introduktion till djupinlärning med PyTorch

Lägga till lager

# 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)
)
  • Indata 10 ➡ utdata 18 ➡ utdata 20 ➡ Utdata 5
Introduktion till djupinlärning med PyTorch

Lägga till lager

# 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
)
  • Indata 10 ➡ utdata 18 ➡ utdata 20 ➡ Utdata 5
Introduktion till djupinlärning med PyTorch

Lager består av neuroner

$$

  • Fullständigt kopplat när varje neuron kopplas till alla neuroner i föregående lager

Illustration av ett in- och utdatalager med pilar som kopplar samman lagren

Introduktion till djupinlärning med PyTorch

Lager består av neuroner

$$

  • Fullständigt kopplat när varje neuron kopplas till alla neuroner i föregående lager

$$

  • En neuron i ett linjärt lager:

Illustration av ett in- och utdatalager med pilar som kopplar samman lagren och en cirkel runt en utdataneuron

Introduktion till djupinlärning med PyTorch

Lager består av neuroner

$$

  • Fullständigt kopplat när varje neuron kopplas till alla neuroner i föregående lager

$$

  • En neuron i ett linjärt lager:
    • Utför en linjär operation med alla neuroner från föregående lager

Illustration av ett in- och utdatalager med pilar som kopplar samman lagren, en cirkel runt en utdataneuron och markerade pilar

Introduktion till djupinlärning med PyTorch

Lager består av neuroner

$$

  • Fullständigt kopplat när varje neuron kopplas till alla neuroner i föregående lager

$$

  • En neuron i ett linjärt lager:
    • Utför en linjär operation med alla neuroner från föregående lager
    • Har N+1 parametrar: N från indata och 1 för bias

N+1

Introduktion till djupinlärning med PyTorch

Parametrar och modellkapacitet

  • Fler dolda lager = fler parametrar = högre modellkapacitet

$$

Kodblock för ett nätverk med två lager

Introduktion till djupinlärning med PyTorch

Parametrar och modellkapacitet

  • Fler dolda lager = fler parametrar = högre modellkapacitet

$$

Kodblock för ett nätverk med två lager

$$

Manuell parameterberäkning:

  • Första lagret har 4 neuroner, varje neuron har 8+1 parametrar. 9 gånger 4 = 36 parametrar
Introduktion till djupinlärning med PyTorch

Parametrar och modellkapacitet

  • Fler dolda lager = fler parametrar = högre modellkapacitet

$$

Kodblock för ett nätverk med två lager

$$

Manuell parameterberäkning:

  • Första lagret har 4 neuroner, varje neuron har 8+1 parametrar. 9 gånger 4 = 36 parametrar
Introduktion till djupinlärning med PyTorch

Parametrar och modellkapacitet

  • Fler dolda lager = fler parametrar = högre modellkapacitet

$$

Kodblock för ett nätverk med två lager

$$

Manuell parameterberäkning:

  • Första lagret har 4 neuroner, varje neuron har 8+1 parametrar. 9 gånger 4 = 36 parametrar
  • Andra lagret har 2 neuroner, varje neuron har 4+1 parametrar. 5 gånger 2 = 10 parametrar
Introduktion till djupinlärning med PyTorch

Parametrar och modellkapacitet

  • Fler dolda lager = fler parametrar = högre modellkapacitet

$$

Kodblock för ett nätverk med två lager

$$

Manuell parameterberäkning:

  • Första lagret har 4 neuroner, varje neuron har 8+1 parametrar. 9 gånger 4 = 36 parametrar
  • Andra lagret har 2 neuroner, varje neuron har 4+1 parametrar. 5 gånger 2 = 10 parametrar
  • 36 + 10 = 46 inlärningsbara parametrar
Introduktion till djupinlärning med PyTorch

Parametrar och modellkapacitet

  • Fler dolda lager = fler parametrar = högre modellkapacitet

$$

Kodblock för ett nätverk med två lager

$$

Med PyTorch:

  • .numel(): returnerar antalet element i tensorn
total = 0
for parameter in model.parameters():
    total += parameter.numel()
print(total)
46
Introduktion till djupinlärning med PyTorch

Balansera komplexitet och effektivitet

Balans mellan komplexitet och effektivitet

Introduktion till djupinlärning med PyTorch

Nu kör vi en övning!

Introduktion till djupinlärning med PyTorch

Preparing Video For Download...