Gradientes 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.
1234import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
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 = 5x
O objetivo é calcular a derivada em relação a x
para x = 2
.
123456import 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}")
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
.
12345678import 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}")
O gradiente calculado é a derivada de y
em relação a x
, avaliada em x = 2
.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 5
Gradientes 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.
1234import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
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 = 5x
O objetivo é calcular a derivada em relação a x
para x = 2
.
123456import 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}")
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
.
12345678import 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}")
O gradiente calculado é a derivada de y
em relação a x
, avaliada em x = 2
.
Obrigado pelo seu feedback!