Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Gradienti in PyTorch | Sezione
Practice
Projects
Quizzes & Challenges
Quiz
Challenges
/
Fondamenti di PyTorch per Ingegneri ML

bookGradienti in PyTorch

Note
Definizione

Per ricapitolare, i gradienti sono derivate parziali di una funzione rispetto ai suoi input.

I gradienti sono fondamentali nei compiti di ottimizzazione come l'addestramento delle reti neurali, dove aiutano ad adattare pesi e bias per minimizzare l'errore. In PyTorch, vengono calcolati automaticamente tramite il modulo autograd, che traccia le operazioni sui tensori e calcola le derivate in modo efficiente.

Abilitazione del tracciamento dei gradienti

Per abilitare il tracciamento dei gradienti per un tensore, si utilizza l'argomento requires_grad=True durante la creazione del tensore. Questo indica a PyTorch di tracciare tutte le operazioni sul tensore per il calcolo dei gradienti.

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

Costruzione di un grafo computazionale

PyTorch costruisce un grafo computazionale dinamico mentre si eseguono operazioni su tensori con requires_grad=True. Questo grafo memorizza le relazioni tra tensori e operazioni, consentendo la differenziazione automatica.

Inizieremo definendo una funzione polinomiale piuttosto semplice:

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

L'obiettivo è calcolare la derivata rispetto a x per 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 visualizzazione di questo grafo computazionale creato utilizzando la libreria PyTorchViz può apparire piuttosto complessa, ma trasmette efficacemente l'idea chiave alla base:

Calcolo dei gradienti

Per calcolare il gradiente, è necessario chiamare il metodo backward() sul tensore di output. Questo calcola la derivata della funzione rispetto al tensore di input.

Il gradiente calcolato può poi essere accessibile tramite l'attributo .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

Il gradiente calcolato è la derivata di y rispetto a x, valutata in x = 2.

question mark

Come puoi accedere al gradiente calcolato di un tensore dopo la retropropagazione in PyTorch?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 11

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

bookGradienti in PyTorch

Scorri per mostrare il menu

Note
Definizione

Per ricapitolare, i gradienti sono derivate parziali di una funzione rispetto ai suoi input.

I gradienti sono fondamentali nei compiti di ottimizzazione come l'addestramento delle reti neurali, dove aiutano ad adattare pesi e bias per minimizzare l'errore. In PyTorch, vengono calcolati automaticamente tramite il modulo autograd, che traccia le operazioni sui tensori e calcola le derivate in modo efficiente.

Abilitazione del tracciamento dei gradienti

Per abilitare il tracciamento dei gradienti per un tensore, si utilizza l'argomento requires_grad=True durante la creazione del tensore. Questo indica a PyTorch di tracciare tutte le operazioni sul tensore per il calcolo dei gradienti.

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

Costruzione di un grafo computazionale

PyTorch costruisce un grafo computazionale dinamico mentre si eseguono operazioni su tensori con requires_grad=True. Questo grafo memorizza le relazioni tra tensori e operazioni, consentendo la differenziazione automatica.

Inizieremo definendo una funzione polinomiale piuttosto semplice:

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

L'obiettivo è calcolare la derivata rispetto a x per 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 visualizzazione di questo grafo computazionale creato utilizzando la libreria PyTorchViz può apparire piuttosto complessa, ma trasmette efficacemente l'idea chiave alla base:

Calcolo dei gradienti

Per calcolare il gradiente, è necessario chiamare il metodo backward() sul tensore di output. Questo calcola la derivata della funzione rispetto al tensore di input.

Il gradiente calcolato può poi essere accessibile tramite l'attributo .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

Il gradiente calcolato è la derivata di y rispetto a x, valutata in x = 2.

question mark

Come puoi accedere al gradiente calcolato di un tensore dopo la retropropagazione in PyTorch?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 11
some-alt