Приховані шари та параметри

Вступ до Deep Learning з PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Нарощування шарів з 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)
)
  • Вхід проходить крізь лінійні шари
  • Шари в nn.Sequential() — це приховані шари
Вступ до Deep Learning з PyTorch

Нарощування шарів з 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  
)
  • Вхід проходить крізь лінійні шари
  • Шари в nn.Sequential() — це приховані шари
  • n_features і n_classes визначає набір даних
Вступ до Deep Learning з PyTorch

Додавання шарів

Ілюстрація нейромережі з двома прихованими шарами

Вступ до Deep Learning з PyTorch

Додавання шарів

Ілюстрація нейромережі з чотирма прихованими шарами

Вступ до Deep Learning з PyTorch

Додавання шарів

Ілюстрація нейромережі з чотирма прихованими шарами

Вступ до Deep Learning з PyTorch

Додавання шарів

Ілюстрація нейромережі з чотирма прихованими шарами

Вступ до Deep Learning з PyTorch

Додавання шарів

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20),
    nn.Linear(20, 5)
)
Вступ до Deep Learning з PyTorch

Додавання шарів

# 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)
)
  • Вхід 10 ➡ вихід 18 ➡ вихід 20 ➡ Вихід 5
Вступ до Deep Learning з PyTorch

Додавання шарів

# 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)
)
  • Вхід 10 ➡ вихід 18 ➡ вихід 20 ➡ Вихід 5
Вступ до Deep Learning з PyTorch

Додавання шарів

# 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
)
  • Вхід 10 ➡ вихід 18 ➡ вихід 20 ➡ Вихід 5
Вступ до Deep Learning з PyTorch

Шари складаються з нейронів

$$

  • Повнозвʼязний, коли кожен нейрон зʼєднано з усіма нейронами попереднього шару

Схема вхідного та вихідного шару зі стрілками між ними

Вступ до Deep Learning з PyTorch

Шари складаються з нейронів

$$

  • Повнозвʼязний, коли кожен нейрон зʼєднано з усіма нейронами попереднього шару

$$

  • Нейрон у лінійному шарі:

Схема вхідного та вихідного шару зі стрілками між ними й виділеним одним вихідним нейроном

Вступ до Deep Learning з PyTorch

Шари складаються з нейронів

$$

  • Повнозвʼязний, коли кожен нейрон зʼєднано з усіма нейронами попереднього шару

$$

  • Нейрон у лінійному шарі:
    • Виконує лінійну операцію, використовуючи всі нейрони попереднього шару

Схема шарів зі стрілками, виділеним вихідним нейроном і підсвіченими стрілками

Вступ до Deep Learning з PyTorch

Шари складаються з нейронів

$$

  • Повнозвʼязний, коли кожен нейрон зʼєднано з усіма нейронами попереднього шару

$$

  • Нейрон у лінійному шарі:
    • Виконує лінійну операцію, використовуючи всі нейрони попереднього шару
    • Має N+1 параметр: N із входів і 1 для зміщення

N+1

Вступ до Deep Learning з PyTorch

Параметри та ємність моделі

  • Більше прихованих шарів = більше параметрів = вища ємність моделі

$$

Фрагмент коду для мережі з двома шарами

Вступ до Deep Learning з PyTorch

Параметри та ємність моделі

  • Більше прихованих шарів = більше параметрів = вища ємність моделі

$$

Фрагмент коду для мережі з двома шарами

$$

Ручний підрахунок параметрів:

  • Перший шар має 4 нейрони, кожен має 8+1 параметр. 9 разів по 4 = 36 параметрів
Вступ до Deep Learning з PyTorch

Параметри та ємність моделі

  • Більше прихованих шарів = більше параметрів = вища ємність моделі

$$

Фрагмент коду для мережі з двома шарами

$$

Ручний підрахунок параметрів:

  • Перший шар має 4 нейрони, кожен має 8+1 параметр. 9 разів по 4 = 36 параметрів
Вступ до Deep Learning з PyTorch

Параметри та ємність моделі

  • Більше прихованих шарів = більше параметрів = вища ємність моделі

$$

Фрагмент коду для мережі з двома шарами

$$

Ручний підрахунок параметрів:

  • Перший шар має 4 нейрони, кожен має 8+1 параметр. 9 разів по 4 = 36 параметрів
  • Другий шар має 2 нейрони, кожен має 4+1 параметр. 5 разів по 2 = 10 параметрів
Вступ до Deep Learning з PyTorch

Параметри та ємність моделі

  • Більше прихованих шарів = більше параметрів = вища ємність моделі

$$

Фрагмент коду для мережі з двома шарами

$$

Ручний підрахунок параметрів:

  • Перший шар має 4 нейрони, кожен має 8+1 параметр. 9 разів по 4 = 36 параметрів
  • Другий шар має 2 нейрони, кожен має 4+1 параметр. 5 разів по 2 = 10 параметрів
  • 36 + 10 = 46 параметрів, що навчаються
Вступ до Deep Learning з PyTorch

Параметри та ємність моделі

  • Більше прихованих шарів = більше параметрів = вища ємність моделі

$$

Фрагмент коду для мережі з двома шарами

$$

У PyTorch:

  • .numel(): повертає кількість елементів у тензорі
total = 0
for parameter in model.parameters():
    total += parameter.numel()
print(total)
46
Вступ до Deep Learning з PyTorch

Баланс складності та ефективності

Баланс між складністю та ефективністю

Вступ до Deep Learning з PyTorch

Давайте потренуємось!

Вступ до Deep Learning з PyTorch

Preparing Video For Download...