Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Gradientes no PyTorch | Conceitos Mais Avançados
Essenciais do PyTorch

bookGradientes no PyTorch

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 utilizando o módulo autograd, que rastreia operações em tensores e computa derivadas de forma eficiente.

Ativando o Rastreamento de Gradientes

Para ativar o rastreamento de gradientes em 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 do gradiente.

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

Construindo um Grafo Computacional

O PyTorch constrói um grafo computacional dinâmico à medida que você executa operações 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 + 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 desse grafo computacional criada utilizando a biblioteca PyTorchViz pode parecer um pouco complexa, mas transmite de forma eficaz a ideia principal:

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.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 1

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

Awesome!

Completion rate improved to 5

bookGradientes no PyTorch

Deslize para mostrar o menu

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 utilizando o módulo autograd, que rastreia operações em tensores e computa derivadas de forma eficiente.

Ativando o Rastreamento de Gradientes

Para ativar o rastreamento de gradientes em 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 do gradiente.

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

Construindo um Grafo Computacional

O PyTorch constrói um grafo computacional dinâmico à medida que você executa operações 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 + 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 desse grafo computacional criada utilizando a biblioteca PyTorchViz pode parecer um pouco complexa, mas transmite de forma eficaz a ideia principal:

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.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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