Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Gradientes no PyTorch | Seção
Fundamentos do PyTorch

bookGradientes no PyTorch

Deslize para mostrar o menu

Note
Definição

Para recapitular, gradientes são derivadas parciais de uma função em relação às suas entradas.

Gradientes são fundamentais em tarefas de otimização como o treinamento de redes neurais, onde auxiliam no ajuste de pesos e vieses para minimizar o erro. No PyTorch, eles são calculados automaticamente usando o módulo autograd, que rastreia operações em tensores e calcula derivadas de forma eficiente.

Habilitando o Rastreamento de Gradientes

Para habilitar o rastreamento de gradientes para um tensor, utiliza-se o argumento requires_grad=True ao criar o tensor. Isso informa ao PyTorch para rastrear todas as operações no tensor para o cálculo de gradientes.

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

Construção de um Grafo Computacional

O PyTorch constrói um grafo computacional dinâmico à medida que operações são realizadas em tensores com requires_grad=True. Esse grafo armazena os relacionamentos entre tensores e operações, permitindo a diferenciação automática.

Vamos começar definindo uma função polinomial simples:

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

O objetivo é calcular a derivada em relação a x para 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

A visualização deste grafo computacional criado utilizando a biblioteca PyTorchViz pode parecer um pouco complexa, mas transmite de forma eficaz a ideia principal por trás dele:

Cálculo de Gradientes

Para calcular o gradiente, o método backward() deve ser chamado no tensor de saída. Isso calcula a derivada da função em relação ao tensor de entrada.

O gradiente calculado pode então ser acessado pelo atributo .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

O gradiente calculado é a derivada de y em relação a x, avaliada em x = 2.

question mark

Como acessar o gradiente calculado de um tensor após a retropropagação no PyTorch?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 11

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 1. Capítulo 11
some-alt