Definición
Un grafo dirigido cuyos nodos representan operaciones elementales o contenedores de datos (variables/tenores) y cuyas aristas representan el flujo de valores entre esas operaciones; se usa para representar, analizar y ejecutar cálculos matemáticos.

Principio

Principio
Descomponer un cálculo complejo en nodos conectados por dependencias de datos para que la evaluación, la transformación (por ejemplo, simplificación algebraica) y la diferenciación puedan realizarse recorriendo o transformando el grafo—a menudo como una estructura acíclica para la evaluación hacia adelante y la diferenciación en modo inverso.

Demostración

Demostración
Una pasada hacia adelante de una red neuronal puede representarse como un grafo donde los nodos son multiplicaciones matriciales, sumas de sesgo y funciones no lineales; los tensores fluyen por las aristas. La retropropagación se implementa recorriendo el mismo grafo en sentido inverso para acumular gradientes.

Aplicación incorrecta

Aplicación incorrecta
Tratar un grafo computacional como un modelo de flujo de control (usar sus aristas para razonar sobre el orden de ejecución de sentencias con efectos secundarios) o asumir que todo grafo computacional es acíclico e ignorar motivos cíclicos permitidos para definiciones recurrentes, lo que conduce a suposiciones erróneas sobre evaluación o convergencia.

Consecuencia

Consecuencia
Cuando se utiliza correctamente permite la diferenciación automática, la manipulación simbólica (eliminación de subexpresiones comunes), la planificación de ejecución paralela y compromisos memoria/recomputación informados por dependencias de datos.

Inversión

Inversión
Ver el programa como texto o una secuencia imperativa de instrucciones donde las operaciones se ordenan por flujo de control en lugar de por aristas de datos; invertir el concepto enfatiza pasos de ejecución en lugar de dependencias de valores.

Límite

Límite
Se aplica a representaciones que exponen los cálculos y el flujo de valores; no codifica por sí mismo la planificación en tiempo de ejecución, la asignación de recursos a bajo nivel ni los efectos de control no relacionados con datos salvo que se extienda. Distinga los grafos estáticos 'definir-luego-ejecutar' de los grafos construidos en tiempo de ejecución.

Tensión semántica

Tensión semántica
Compite con el término 'grafo de flujo de datos': ambos enfatizan el movimiento de valores, pero el flujo de datos se centra en el paso de tokens y la semántica de disparo, mientras que el grafo computacional enfatiza la composición algebraica y la diferenciación para el cálculo numérico.

Síntesis

Síntesis
Un grafo computacional es la representación dirigida y estructurada de un cálculo en la que los nodos son operaciones o contenedores de datos y las aristas son dependencias de valor; esta estructura hace factibles tareas analíticas (derivadas, optimizaciones, paralelización) mediante algoritmos sobre grafos, diferenciándola del control de flujo o la planificación en tiempo de ejecución.