Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Gradienti in PyTorch | Concetti Più Avanzati
Fondamenti di PyTorch

bookGradienti in PyTorch

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 esegui operazioni su tensori con requires_grad=True. Questo grafo memorizza le relazioni tra tensori e operazioni, consentendo la differenziazione automatica.

Inizieremo definendo una semplice funzione polinomiale:

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 creata utilizzando la libreria PyTorchViz può apparire piuttosto complessa, ma trasmette efficacemente il concetto 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.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 1

Chieda ad AI

expand

Chieda ad AI

ChatGPT

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

Awesome!

Completion rate improved to 5

bookGradienti in PyTorch

Scorri per mostrare il menu

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 esegui operazioni su tensori con requires_grad=True. Questo grafo memorizza le relazioni tra tensori e operazioni, consentendo la differenziazione automatica.

Inizieremo definendo una semplice funzione polinomiale:

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 creata utilizzando la libreria PyTorchViz può apparire piuttosto complessa, ma trasmette efficacemente il concetto 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.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 1
some-alt