I grafici di calcolo dinamico (DCG) sono il modo in cui i modelli di deep learning vengono rappresentati in PyTorch. Parlando in modo astratto, i grafici di calcolo mappano il flusso di dati tra le diverse operazioni in un sistema matematico: nel contesto del deep learning, traducono essenzialmente il codice di una rete neurale in un diagramma di flusso che indica le operazioni eseguite in ciascun nodo e le dipendenze tra diversi strati nella rete—la disposizione di fasi e sequenze che trasformano i dati di input in dati di output.
Ciò che differenzia i grafici di calcolo dinamici (come quelli usati in PyTorch) dai grafici di calcolo statici (come quelli usati in TensorFlow) è che i DCG rinviano la specifica esatta dei calcoli e delle relazioni tra di essi fino al momento dell'esecuzione. In altre parole, mentre un grafico di calcolo statico richiede che l'architettura dell'intera rete neurale sia completamente determinata e compilata per funzionare, i DCG possono essere iterati e modificati rapidamente.
Ciò rende i DCG particolarmente utili per il debug e la prototipazione, poiché specifiche porzioni del codice di un modello possono essere modificate o eseguite in isolamento senza dover reimpostare l'intero modello—il che, per i modelli di deep learning molto grandi usati per sofisticate attività di computer vision e NLP, può essere uno spreco di tempo e risorse computazionali. I vantaggi di questa flessibilità comprendono anche l'addestramento del modello, poiché i grafici di calcolo dinamico possono essere facilmente generati al contrario durante la retropropagazione.
Mentre la loro struttura fissa può consentire una maggiore efficienza computazionale, i grafici computazionali statici hanno una flessibilità limitata: ad esempio, la creazione di un modello che usa un numero variabile di strati a seconda dei dati di input—come una rete neurale convoluzionale (CNN) in grado di elaborare immagini di dimensioni diverse—è proibitivamente difficile con i grafici statici.