TensorFlow es una biblioteca de software de código abierto para computación numérica utilizando gráficos de flujo de datos. Fue desarrollado originalmente por el equipo de Google Brain y se lanzó bajo la licencia Apache 2.0 en noviembre de 2015. TensorFlow está diseñado para facilitar la investigación y el desarrollo en el campo del aprendizaje automático (machine learning) y en particular para el aprendizaje profundo (deep learning), aunque es lo suficientemente general como para ser utilizado en una variedad de otros dominios también.
Características clave de TensorFlow:
- Flexibilidad: Tiene un diseño modular, lo que significa que puedes usar algunas partes de él de forma independiente y puedes alterarlo para alcanzar tus necesidades.
- Portabilidad: Puede ejecutarse en múltiples CPU y GPU así como en dispositivos móviles.
- Gráficos de Computación: Utiliza una arquitectura de gráficos donde los nodos representan operaciones matemáticas mientras que los bordes representan los datos multidimensionales (tensores) que se comunican entre ellos.
- Autodiferenciación: Posee capacidades integradas para hacer que la derivación automática (calcular gradientes automáticamente) sea un proceso sencillo.
- Escalabilidad: Es escalable en términos de computación y también en términos de desarrollo colaborativo y despliegue de sistemas complejos.
- Ecosistema de Herramientas: Tiene un ecosistema robusto de herramientas y comunidades que incluyen TensorBoard para la visualización de gráficos y la evolución del aprendizaje, soporte de integración con Keras (una API de alto nivel para la creación de modelos de deep learning), y una serie de tutoriales y recursos de aprendizaje.
Componentes:
- Core TensorFlow: El conjunto base de las API de bajo nivel necesarias para usar la arquitectura de gráficos de datos y ejecutar cálculos. Esto permite un control detallado pero puede ser más complejo.
- TensorFlow High-Level APIs: APIs como
tf.kerasytf.estimatorque permiten crear y entrenar modelos con mayores niveles de abstracción, lo que facilita el uso sin sacrificar la potencia. - TensorFlow Lite: Una versión ligera destinada para dispositivos móviles y de borde.
- TensorFlow Extended (TFX): Una plataforma de ML de extremo a extremo para desplegar modelos de producción.
- TensorFlow.js: Una biblioteca de TensorFlow para el desarrollo de modelos de ML en JavaScript y la ejecución de modelos previamente entrenados en navegadores.
- TensorFlow Hub: Un lugar para encontrar y publicar modelos y componentes preentrenados.
Dado su alcance y capacidad de abstracción, TensorFlow se utiliza tanto en la investigación como en la industria para una amplia gama de aplicaciones, incluyendo pero no limitándose a: reconocimiento de voz, procesamiento de texto, percepción de imagen, traducción automática, y descubrimientos biológicos.