Os gráficos dinâmicos de computação (DCGs) são a maneira como os modelos de deep learning são representados no PyTorch. De uma forma abstrata, gráficos de computação associam o fluxo de dados entre as diferentes operações em um sistema matemático: no contexto de deep learning, eles essencialmente traduzem o código de uma rede neural em um fluxograma indicando as operações executadas em cada nó e as dependências entre diferentes camadas na rede, arranjo de etapas e sequências que transformam dados de entrada em dados de saída.
O que diferencia os gráficos dinâmicos de computação (como os usados no PyTorch) dos gráficos de computação estática (como os usados no TensorFlow) é que os DCGs adiam a especificação exata de cálculos e relacionamentos entre eles até o tempo de execução. Em outras palavras, enquanto um gráfico de computação estática exige que a arquitetura de toda a rede neural seja totalmente determinada e compilada para ser executada, os DCGs podem ser iterados e modificados em tempo real.
Isso torna os DCGs particularmente úteis para depuração e prototipagem, pois partes específicas do código de um modelo podem ser alteradas ou executadas isoladamente sem a necessidade de redefinir o modelo inteiro, o que, para os modelos de deep learning muito grandes usados para tarefas sofisticadas de visão computacional e PNL, pode ser um desperdício de tempo e recursos computacionais. Os benefícios dessa flexibilidade se estendem ao treinamento do modelo, pois os gráficos de computação dinâmica são facilmente gerados em sentido inverso durante a retropropagação.
Embora sua estrutura fixa possa capacitar maior eficiência computacional, gráficos computacionais estáticos têm flexibilidade limitada: por exemplo, a construção de um modelo que utiliza um número variável de camadas dependendo dos dados de entrada, como uma rede neural convolucional (CNN) capaz de processar imagens de diferentes tamanhos, é proibitivamente difícil com gráficos estáticos.