Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Gradients dans PyTorch | Concepts Plus Avancés
Essentiels de Pytorch
course content

Contenu du cours

Essentiels de Pytorch

Essentiels de Pytorch

1. Introduction à PyTorch
2. Concepts Plus Avancés
3. Réseaux Neuronaux dans PyTorch

book
Gradients dans PyTorch

Les gradients sont fondamentaux dans les tâches d'optimisation comme l'entraînement des réseaux neuronaux, où ils aident à ajuster les poids et les biais pour 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 les dérivées efficacement.

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 de Calcul

PyTorch construit un graphe de calcul dynamique lorsque vous effectuez des opérations sur des tenseurs avec requires_grad=True. Ce graphe stocke les relations entre les tenseurs et les opérations, permettant la différenciation automatique.

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

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

Notre objectif est de calculer la dérivée par rapport à x à 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éé à l'aide de la bibliothèque PyTorchViz peut sembler quelque peu complexe, mais elle transmet efficacement l'idée clé qui le sous-tend :

Calcul des Gradients

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

Le gradient calculé lui-même peut ensuite être accédé avec 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 à x = 2.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 1
We're sorry to hear that something went wrong. What happened?
some-alt