Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Градієнти в PyTorch | Більш Просунуті Концепції
Основи PyTorch

bookГрадієнти в PyTorch

Градієнти є основою в задачах оптимізації, таких як навчання нейронних мереж, де вони допомагають коригувати ваги та зсуви для мінімізації помилки. У PyTorch вони обчислюються автоматично за допомогою модуля autograd, який відстежує операції над тензорами та ефективно обчислює похідні.

Увімкнення відстеження градієнтів

Щоб увімкнути відстеження градієнтів для тензора, використовується аргумент requires_grad=True під час створення тензора. Це повідомляє PyTorch відстежувати всі операції над тензором для обчислення градієнтів.

1234
import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
copy

Побудова обчислювального графа

PyTorch створює динамічний обчислювальний граф під час виконання операцій над тензорами з requires_grad=True. Цей граф зберігає зв'язки між тензорами та операціями, забезпечуючи автоматичне диференціювання.

Почнемо з визначення досить простої поліноміальної функції:

y = 5x3 + 2x2 + 4x + 8

Наша мета — обчислити похідну за x при x = 2.

123456
import torch # Define the tensor x = torch.tensor(2.0, requires_grad=True) # Define the function y = 5 * x ** 3 + 2 * x ** 2 + 4 * x + 8 print(f"Function output: {y}")
copy

Візуалізація цього обчислювального графа, створеного за допомогою бібліотеки PyTorchViz, може виглядати дещо складною, але вона ефективно передає основну ідею:

Обчислення градієнтів

Для обчислення градієнта необхідно викликати метод backward() для вихідного тензора. Це обчислює похідну функції відносно вхідного тензора.

Обчислений градієнт можна отримати за допомогою атрибута .grad.

12345678
import torch x = torch.tensor(2.0, requires_grad=True) y = 5 * x ** 3 + 2 * x ** 2 + 4 * x + 8 # Perform backpropagation y.backward() # Print the gradient of x grad = x.grad print(f"Gradient of x: {grad}")
copy

Обчислений градієнт — це похідна y за x, обчислена при x = 2.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 1

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 5

bookГрадієнти в PyTorch

Свайпніть щоб показати меню

Градієнти є основою в задачах оптимізації, таких як навчання нейронних мереж, де вони допомагають коригувати ваги та зсуви для мінімізації помилки. У PyTorch вони обчислюються автоматично за допомогою модуля autograd, який відстежує операції над тензорами та ефективно обчислює похідні.

Увімкнення відстеження градієнтів

Щоб увімкнути відстеження градієнтів для тензора, використовується аргумент requires_grad=True під час створення тензора. Це повідомляє PyTorch відстежувати всі операції над тензором для обчислення градієнтів.

1234
import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
copy

Побудова обчислювального графа

PyTorch створює динамічний обчислювальний граф під час виконання операцій над тензорами з requires_grad=True. Цей граф зберігає зв'язки між тензорами та операціями, забезпечуючи автоматичне диференціювання.

Почнемо з визначення досить простої поліноміальної функції:

y = 5x3 + 2x2 + 4x + 8

Наша мета — обчислити похідну за x при x = 2.

123456
import torch # Define the tensor x = torch.tensor(2.0, requires_grad=True) # Define the function y = 5 * x ** 3 + 2 * x ** 2 + 4 * x + 8 print(f"Function output: {y}")
copy

Візуалізація цього обчислювального графа, створеного за допомогою бібліотеки PyTorchViz, може виглядати дещо складною, але вона ефективно передає основну ідею:

Обчислення градієнтів

Для обчислення градієнта необхідно викликати метод backward() для вихідного тензора. Це обчислює похідну функції відносно вхідного тензора.

Обчислений градієнт можна отримати за допомогою атрибута .grad.

12345678
import torch x = torch.tensor(2.0, requires_grad=True) y = 5 * x ** 3 + 2 * x ** 2 + 4 * x + 8 # Perform backpropagation y.backward() # Print the gradient of x grad = x.grad print(f"Gradient of x: {grad}")
copy

Обчислений градієнт — це похідна y за x, обчислена при x = 2.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 1
some-alt