Вступ до Deep Learning з PyTorch
Jasmin Ludolf
Senior Data Science Content Developer, DataCamp
$$
Похідна показує крутість кривої
$$
$$

Це опукла функція

Це неопукла функція

$$

$$

$$
Розгляньмо мережу з трьох шарів:

# Запустіть прямий прохід model = nn.Sequential(nn.Linear(16, 8), nn.Linear(8, 4), nn.Linear(4, 2)) prediction = model(sample)# Обчисліть втрати та градієнти criterion = CrossEntropyLoss() loss = criterion(prediction, target) loss.backward()
# Отримайте градієнти кожного шару
model[0].weight.grad
model[0].bias.grad
model[1].weight.grad
model[1].bias.grad
model[2].weight.grad
model[2].bias.grad
# Крок навчання зазвичай малий lr = 0.001 # Оновіть ваги weight = model[0].weight weight_grad = model[0].weight.gradweight = weight - lr * weight_grad# Оновіть зміщення bias = model[0].bias bias_grad = model[0].bias.gradbias = bias - lr * bias_grad
$$
Для неопуклих функцій використовуємо градієнтний спуск
PyTorch спрощує це за допомогою оптимізаторів
import torch.optim as optim # Створіть оптимізатор optimizer = optim.SGD(model.parameters(), lr=0.001)# Виконайте оновлення параметрів optimizer.step()
Вступ до Deep Learning з PyTorch