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
Essenciais do PyTorch para Engenheiro de ML

bookGradientes no PyTorch

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 utilizando o módulo autograd, que rastreia operações em tensores e computa 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 você realiza 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 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

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 utilizando o módulo autograd, que rastreia operações em tensores e computa 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 você realiza 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 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
some-alt