TensorFlow es una biblioteca de software de código abierto que Google crea y mantiene. Su propósito principal es ayudar a desarrollar y desplegar sistemas de aprendizaje automático e inteligencia artificial. Para lograrlo, ofrece un marco de trabajo que opera en varios niveles de abstracción, lo que permite a los investigadores experimentar con ideas novedosas y a los ingenieros implementar estas ideas en entornos de producción. La biblioteca maneja el cálculo numérico mediante grafos de flujo de datos, donde los nodos representan operaciones matemáticas y los bordes son los tensores o arreglos de datos multidimensionales que fluyen entre ellos.


TensorFlow estructura el cálculo en grafos de datos

En su núcleo, TensorFlow define los cálculos como grafos. Esto separa claramente la fase de definir el modelo de la fase de ejecutarlo. Los desarrolladores primero construyen un grafo computacional que describe todas las operaciones y sus dependencias. Luego, para procesar datos reales, ejecutan partes de este grafo dentro de una sesión. Este enfoque permite optimizar y distribuir los cálculos de manera eficiente en diferentes unidades de procesamiento, como CPU, GPU o TPU. La abstracción del grafo facilita escalar los modelos desde una sola máquina hasta clústeres de servidores.

Keras simplifica el acceso a las capacidades de TensorFlow

Para hacer la biblioteca más accesible, TensorFlow integra de forma nativa la API de Keras. Keras actúa como una interfaz de alto nivel que abstrae gran parte de la complejidad subyacente. Con Keras, es posible definir redes neuronales de manera secuencial o funcional usando capas preconstruidas de manera intuitiva. Esto acelera el proceso de prototipar modelos, entrenarlos y evaluarlos, sin perder la capacidad de acceder a las funciones de bajo nivel de TensorFlow cuando se necesita un control más preciso sobre los detalles del modelo o el proceso de entrenamiento.

A veces, definir un grafo de operaciones para predecir si una imagen muestra un gato o un perro puede parecer un esfuerzo desproporcionado, pero así es como la máquina aprende a diferenciar entre felinos y caninos.