Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Gradients dans PyTorch | Section
Essentiels de PyTorch pour Ingénieur ML

bookGradients dans PyTorch

Note
Définition

Pour récapituler, les gradients sont les dérivées partielles d'une fonction par rapport à ses entrées.

Les gradients sont essentiels dans les tâches d'optimisation telles que l'entraînement des réseaux de neurones, où ils permettent d'ajuster les poids et les biais afin de minimiser l'erreur. Dans PyTorch, ils sont calculés automatiquement à l'aide du module autograd, qui suit les opérations sur les tenseurs et calcule efficacement les dérivées.

Activation du suivi des gradients

Pour activer le suivi des gradients pour un tenseur, l'argument requires_grad=True est utilisé lors de la création du tenseur. Cela indique à PyTorch de suivre toutes les opérations sur le tenseur pour le calcul des gradients.

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

Construction d'un graphe computationnel

PyTorch construit un graphe computationnel dynamique lors de l'exécution d'opérations sur des tenseurs avec requires_grad=True. Ce graphe conserve les relations entre les tenseurs et les opérations, permettant ainsi la différentiation automatique.

Nous allons commencer par définir une fonction polynomiale relativement simple :

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

L'objectif est de calculer la dérivée par rapport à x en 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

La visualisation de ce graphe computationnel créée à l'aide de la bibliothèque PyTorchViz peut sembler quelque peu complexe, mais elle transmet efficacement l'idée principale qui la sous-tend :

Calcul des gradients

Pour calculer le gradient, la méthode backward() doit être appelée sur le tenseur de sortie. Cela permet de calculer la dérivée de la fonction par rapport au tenseur d'entrée.

Le gradient calculé peut ensuite être consulté via l'attribut .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

Le gradient calculé est la dérivée de y par rapport à x, évaluée en x = 2.

question mark

Comment accéder au gradient calculé d'un tenseur après la rétropropagation dans PyTorch ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 11

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

bookGradients dans PyTorch

Glissez pour afficher le menu

Note
Définition

Pour récapituler, les gradients sont les dérivées partielles d'une fonction par rapport à ses entrées.

Les gradients sont essentiels dans les tâches d'optimisation telles que l'entraînement des réseaux de neurones, où ils permettent d'ajuster les poids et les biais afin de minimiser l'erreur. Dans PyTorch, ils sont calculés automatiquement à l'aide du module autograd, qui suit les opérations sur les tenseurs et calcule efficacement les dérivées.

Activation du suivi des gradients

Pour activer le suivi des gradients pour un tenseur, l'argument requires_grad=True est utilisé lors de la création du tenseur. Cela indique à PyTorch de suivre toutes les opérations sur le tenseur pour le calcul des gradients.

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

Construction d'un graphe computationnel

PyTorch construit un graphe computationnel dynamique lors de l'exécution d'opérations sur des tenseurs avec requires_grad=True. Ce graphe conserve les relations entre les tenseurs et les opérations, permettant ainsi la différentiation automatique.

Nous allons commencer par définir une fonction polynomiale relativement simple :

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

L'objectif est de calculer la dérivée par rapport à x en 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

La visualisation de ce graphe computationnel créée à l'aide de la bibliothèque PyTorchViz peut sembler quelque peu complexe, mais elle transmet efficacement l'idée principale qui la sous-tend :

Calcul des gradients

Pour calculer le gradient, la méthode backward() doit être appelée sur le tenseur de sortie. Cela permet de calculer la dérivée de la fonction par rapport au tenseur d'entrée.

Le gradient calculé peut ensuite être consulté via l'attribut .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

Le gradient calculé est la dérivée de y par rapport à x, évaluée en x = 2.

question mark

Comment accéder au gradient calculé d'un tenseur après la rétropropagation dans PyTorch ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 11
some-alt