Elegir el framework adecuado para trabajar con deep learning puede marcar la diferencia entre un proyecto exitoso y uno lleno de fricciones. TensorFlow 2 se posiciona como una de las herramientas más robustas, con la mayor comunidad de soporte a nivel mundial y una curva de aprendizaje mucho más amigable que su versión anterior. A continuación se desglosan los puntos esenciales para entender por qué es una elección sólida y cómo se integra en un ecosistema completo.
¿Por qué TensorFlow 2 entre tantos frameworks de deep learning?
El panorama de frameworks para deep learning es amplio: Caffe, PyTorch, Gluon, CNTK de Microsoft, entre otros. Cada uno ofrece ventajas particulares, pero TensorFlow 2 destaca por tres razones principales [0:22]:
Comunidad masiva: más de 56 000 preguntas en Stack Overflow, más de 109 ML Google Developer Experts y más de 46 TensorFlow User Groups alrededor del mundo [5:10].
Soporte multiplataforma: funciona con Python, JavaScript y C++, lo que permite migrar proyectos entre lenguajes [0:50].
Facilidad de implementación: modelos que antes requerían decenas de líneas ahora se construyen en aproximadamente seis líneas de código [3:08].
Esa combinación de poder y accesibilidad lo convierte en la opción preferida tanto para quienes inician como para equipos que necesitan llevar modelos a producción.
¿Qué significa el nombre TensorFlow?
El nombre revela su lógica interna. Las redes neuronales operan mediante nodos, aristas y grafos [1:52]. Cada nodo representa una operación matemática —desde una regresión hasta una función de activación—. Los datos recorren esas operaciones en forma de tensores, estructuras multidimensionales que transportan la información capa a capa. El flujo (flow) es ese recorrido a través del modelo. Así, tensor + flow = TensorFlow: el flujo de tensores a lo largo de una red neuronal [2:18].
¿Qué cambió entre TensorFlow 1 y TensorFlow 2?
En TensorFlow 1 era necesario declarar variables globales, crear sesiones y limpiarlas cada vez que se generaba un nuevo modelo, lo que hacía el proceso tedioso y propenso a errores [1:15]. TensorFlow 2 introdujo el concepto de eager execution, que permite ejecutar operaciones de forma inmediata sin necesidad de construir grafos estáticos primero [1:35]. Esto hizo que el código fuera mucho más legible y directo.
Para proyectos complejos, TensorFlow 2 no sacrifica potencia: ofrece la API funcional, que permite diseñar arquitecturas de redes neuronales avanzadas con múltiples entradas, salidas y ramificaciones [1:45].
¿Qué papel juega Keras dentro de TensorFlow?
Keras es un framework de alto nivel creado por François Chollet en 2015 mientras trabajaba en Google [3:25]. Fue escrito en Python y su propósito es ocultar la complejidad matemática detrás de las operaciones con tensores, multiplicaciones de matrices y funciones de activación, permitiendo construir modelos con pocas líneas.
Un dato relevante: aunque Keras puede funcionar con otros frameworks, anunció que TensorFlow sería su aliado principal y su fuente de documentación oficial [3:55]. Esto garantiza que las actualizaciones lleguen de forma integrada, como si fueran un único proyecto.
¿Cómo se extiende el ecosistema de TensorFlow más allá del entrenamiento?
TensorFlow no se limita a entrenar modelos. Su ecosistema permite llevarlos a múltiples entornos [4:22]:
TensorFlow Extended (TFX): para desplegar modelos en producción con pipelines completos.
TensorFlow Lite: optimiza modelos para ejecutarse en dispositivos móviles.
TensorFlow JS: permite correr modelos directamente en el navegador.
Integración con hardware: compatible con Arduinos y Jetson Nanos para proyectos de edge computing.
Servicios en la nube: conexión con AI Cloud, AI Platform y generación de APIs.
Esta versatilidad significa que un modelo entrenado en Python puede terminar funcionando en un celular, un servidor web o un microcontrolador sin cambiar de ecosistema.
Si ya trabajas con otro framework o estás comenzando en deep learning, vale la pena explorar la documentación oficial y unirte a comunidades como TensorFlow Colombia, activa para toda Latinoamérica. ¿Con qué framework has trabajado y qué experiencia has tenido? Comparte tu opinión en los comentarios.
Y claro, me uniré a la comunidad de TensorFlow Colombia :)
++RESUMEN DE LA CLASE++
Existen 5 principales frameworks (o librerías) de deep learning:
1.Tensorflow// El que se usará en el curso2.Caffe3.Pytorch4.MicrosoftCNTK5.Gluon
Puedes programar en 3 lenguajes:
Python y C++ con Tensorflow
JavaScript con Tensorflow.js
¿Cómo funciona la lógica de Tensorflow?
Por medio del flujo de las redes neuronales
// Recordemos que las redes tienen:0=>"nodos de entrada (donde entra la información) y donde se realizan operaciones matemáticas",1=>"Capas intermedias donde los datos de entrada se empienza a transformar y a realizar operaciones matemáticas también que no vemos",2=>"nodo de salida donde obtenemos el resultado esperado, bien sea la predicción de un número o el número exacto que esperamos aprenda a retornar la IA"
Estos elemento se grafican en un modelo llamado GRAFO con dos elementos (nodos y aristas)
![
{nodo:"Cada uno de los puntos por donde fluyen los datos de entrada que se procesan",arista:"Son las flechas que indican el flujo de dirección de un nodo",grafos:"Se le llama al conjunto de nodos y aristas",}
Los datos que fluyen a través del grafo se representan en tensores
Tensor: Estructuras similares a los vectores o matrices
++Las diferencias entre Tensorflow I y Tensorflow II son:++
Que el grafo (el modelo) se tenía que programar y definirse
Se generaba muchas líneas de código dificil de entender
Por lo anterior un ex-empleado (Francois Chollet) de Google en 2015 creó Keras, una sublibrería de Tensorflow donde puedes ahorrarte largas líneas de código para crear grafos (modelos)
Ecosistema de Tensorflow
Google Cloud
Arduino
Google Machine Learning API
Flask
Tensorflow Extended
Tensorflow Lite
Tensorflow JS
Y más
Muy recomendada la comunidad de TensorFlow Colombia. 10/10
Le pregunté a chatGPT para qué sirve tensor flow y qué ventajas tiene frente a similares 🧑🚀🚀
TensorFlow es una biblioteca de software de código abierto que se utiliza para desarrollar y entrenar modelos de aprendizaje automático y redes neuronales. Fue desarrollado por Google Brain Team y es una de las herramientas más populares para el aprendizaje automático en la actualidad.
Las ventajas de TensorFlow frente a otras bibliotecas de aprendizaje automático son las siguientes:
Flexibilidad: TensorFlow es altamente flexible y se puede utilizar para crear una amplia variedad de modelos de aprendizaje automático, desde redes neuronales convolucionales hasta modelos de procesamiento de lenguaje natural.
Escalabilidad: TensorFlow se puede utilizar para desarrollar modelos en una amplia gama de tamaños, desde pequeños hasta enormes, lo que lo hace ideal para proyectos de cualquier escala.
Portabilidad: TensorFlow es una biblioteca de software de código abierto, lo que significa que se puede utilizar en cualquier plataforma o sistema operativo, lo que lo hace muy portátil.
Comunidad: TensorFlow tiene una gran comunidad de usuarios y desarrolladores que comparten conocimientos y contribuyen con nuevos proyectos y características a la biblioteca.
Integración: TensorFlow se integra fácilmente con otras bibliotecas de software de aprendizaje automático, como Keras y scikit-learn, lo que lo hace más fácil de usar para el desarrollo de modelos.
Hola! 🖐 Saben si existe Comunidad de TensorFlow en Argentina? Algun enlace o contacto que puedan compartir?
Saludos Augusto. Aquí la encuentras.
Hola Augusto como estas?
Existe el grupo de TF en Buenos aires aqui
También encontre Paraná aqui
Si depronto no encuentas en tu ciudad, avisame y miramos si puedo conectarte con algunas personas y ayudarte a crear TF en tu ciudad !
saludos
Si entreno un modelo con tensorflow en C++ en vez de Python, el modelo va a tener un rendimiento mejor?
Hola Steven es una excelente pregunta,
Este tipo de dudas me surgieron cuando empece a trabajar con TensorFlow y Python, pero lo primero que entendí fue que TensorFlow en su mayor parte, el núcleo no está escrito en Python: Está escrito en C++ y CUDA.
Entonces realmente cuando entrenas el modelo con "Python" en el backend se está ejecutando scripts en c++ y CUDA.
Por esa razón no afectará si entrenas el modelo con Python o C++. Ahora si deseas que el modelo sea mucho más rápido, lo que puedes cambiar es la inferencia del modelo y ejecutarlo en C++, pero no lo mires como el modelo individual, sino piénsalo como todo tu código ejecutando en C++ porque cuando tú realizas la inferencia no es únicamente el modelo, es como iteras en las predicciones, como filtras las que cumplan el threshold, como almacenas eso o para que lo utilizas al final. Entonces todas esas acciones que se realizan por cada frame se ejecutarían mucho más rápido en C++.
Recomendación personal, si estas cómodo en Python, en vez de pasarte en C++, busca optimizar el modelo con otras técnicas como:
Convertir el modelo a la mitad de precisión usando FP32 y UInt8, pero eso afectara la inferencia del mismo.
Iterando con otros modelos quizás más eficientes en costo computacional (Sistemas pre entrenados)
Aplicar quantization después del entrenamiento.
Me cuentas si te sirve,
Saludos
**TensorFlow 2.0** es una versión renovada de la biblioteca TensorFlow, diseñada para simplificar el desarrollo y la implementación de modelos de aprendizaje automático. Fue lanzado con el objetivo de ser más intuitivo, accesible y fácil de usar. TensorFlow 2.0 se basa en la integración profunda con **Keras**, una API de alto nivel para construir y entrenar modelos, y enfatiza el uso del modo de ejecución **Eager** (evaluación inmediata) para un desarrollo más interactivo y depuración más rápida.
Aquí te doy una introducción a los conceptos clave, los beneficios, y un ejemplo básico de uso de TensorFlow 2.0.
### Principales Características de TensorFlow 2.0
1. **API Keras Integrada**: TensorFlow 2.0 adopta Keras como su API de alto nivel, lo que facilita la creación de modelos de redes neuronales con una sintaxis más limpia y organizada. Esto permite definir modelos de forma secuencial o funcional de manera sencilla.
2. **Eager Execution (Ejecución Ansiosa)**: A diferencia de TensorFlow 1.x, que requería la construcción de gráficos estáticos, TensorFlow 2.0 permite la ejecución inmediata de operaciones. Esto simplifica la depuración, ya que puedes ejecutar y ver los resultados de cada operación en tiempo real.
3. **Autodiferenciación con tf.GradientTape**: TensorFlow 2.0 permite calcular gradientes de manera más intuitiva con tf.GradientTape, un entorno para la diferenciación automática útil para entrenar modelos y calcular derivadas complejas.
4. **Compatibilidad Mejorada con tf.compat**: Aunque hay muchos cambios en TensorFlow 2.0, aún puedes usar código de TensorFlow 1.x gracias al módulo tf.compat, que asegura una transición más sencilla para desarrolladores que migran sus modelos de versiones anteriores.
5. **Modelos Distribuidos y Escalabilidad**: TensorFlow 2.0 facilita el entrenamiento distribuido y la implementación en la nube, permitiendo escalar desde una GPU o CPU a múltiples dispositivos y servidores.
### Ejemplo Práctico con TensorFlow 2.0
A continuación, te muestro cómo construir y entrenar un modelo de red neuronal básico utilizando TensorFlow 2.0 en el conjunto de datos MNIST.
#### Paso 1: Instalación de TensorFlow 2.0
Para asegurarte de que estás utilizando TensorFlow 2.0 o superior, puedes instalarlo con el siguiente comando:
pip install tensorflow
#### Paso 2: Importar TensorFlow y Cargar los Datos
TensorFlow 2.0 incluye muchos conjuntos de datos populares en su API tf.keras.datasets, lo que facilita el acceso a ellos sin tener que descargarlos manualmente.
import tensorflow as tf
\# Cargar el conjunto de datos MNIST (dígitos escritos a mano)(x\_train, y\_train),(x\_test, y\_test)= tf.keras.datasets.mnist.load\_data()
\# Normalizar los datos de entrada
x\_train, x\_test = x\_train /255.0, x\_test /255.0
#### Paso 3: Definir el Modelo
En este caso, utilizaremos la **API secuencial** de Keras para construir una red neuronal densa con capas Dense.
model = tf.keras.Sequential(\[  tf.keras.layers.Flatten(input\_shape=(28, 28)), # Aplanar la imagen 28x28 en un vector de 784 elementos  tf.keras.layers.Dense(128, activation='relu'), # Capa oculta con 128 neuronas  tf.keras.layers.Dense(10, activation='softmax') # Capa de salida con 10 neuronas (una por cada dígito)])
#### Paso 4: Compilar el Modelo
Al compilar, se especifican el optimizador, la función de pérdida y las métricas de evaluación.
Finalmente, evaluamos el rendimiento del modelo en el conjunto de prueba.
test\_loss, test\_accuracy = model.evaluate(x\_test, y\_test)print(f"Precisión en el conjunto de prueba: {test\_accuracy}")
### Explicación del Ejemplo
- **Capa Flatten**: Convierte la imagen 2D en un vector 1D para que pueda ser procesada por capas densas.
- **Capas Dense**: Estas capas son completamente conectadas, donde cada neurona se conecta con todas las neuronas de la capa anterior.
- **Función de Activación relu**: Agrega no linealidad al modelo, lo que permite aprender patrones complejos.
- **Función de Activación softmax**: En la capa de salida, produce una distribución de probabilidad sobre las clases posibles (0-9 para los dígitos).
### Visualización de los Resultados del Entrenamiento
TensorFlow 2.0 facilita la visualización de métricas como precisión y pérdida durante el entrenamiento. Aquí te muestro cómo hacerlo con matplotlib.
import matplotlib.pyplot as plt
\# Graficar precisión
plt.plot(history.history\['accuracy'], label='Precisión en entrenamiento')plt.plot(history.history\['val\_accuracy'], label='Precisión en validación')plt.xlabel('Épocas')plt.ylabel('Precisión')plt.legend()plt.show()
\# Graficar pérdida
plt.plot(history.history\['loss'], label='Pérdida en entrenamiento')plt.plot(history.history\['val\_loss'], label='Pérdida en validación')plt.xlabel('Épocas')plt.ylabel('Pérdida')plt.legend()plt.show()
### Beneficios de TensorFlow 2.0
1. **Desarrollo más Rápido**: La ejecución ansiosa facilita la prueba de ideas rápidamente.
2. **Facilidad para Nuevos Usuarios**: La API de Keras en TensorFlow 2.0 es muy intuitiva y fácil de aprender.
3. **Escalabilidad**: TensorFlow 2.0 permite escalar el entrenamiento en múltiples dispositivos y la implementación en la nube.
4. **Versatilidad**: Soporta tanto investigación como producción, siendo una biblioteca completa para construir, entrenar y desplegar modelos.
### Migración de TensorFlow 1.x a 2.0
TensorFlow 2.0 introdujo grandes cambios, pero incluye el módulo tf.compat.v1, que permite ejecutar código escrito en TensorFlow 1.x en la nueva versión. Sin embargo, es recomendable actualizar el código a TensorFlow 2.0 para aprovechar las mejoras.
import tensorflow.compat.v1 as tf
tf.disable\_v2\_behavior()
Esto desactiva las funciones de TensorFlow 2.0, permitiendo ejecutar código de la versión 1.x en la versión 2.x.
### Resumen
TensorFlow 2.0 marca una evolución significativa en la biblioteca, haciéndola más accesible y amigable. Con su ejecución ansiosa, API integrada de Keras y mejor compatibilidad para la producción, TensorFlow 2.0 es una herramienta poderosa tanto para principiantes como para expertos en aprendizaje automático.
Este ejemplo y flujo te ayudarán a empezar a construir modelos de redes neuronales en TensorFlow 2.0. A medida que avances, puedes explorar temas más avanzados como redes convolucionales, redes recurrentes y aprendizaje profundo en TensorFlow.
TensorFlow 2.0 es una versión importante de la popular biblioteca de aprendizaje automático de Google. Introduce una serie de mejoras que la hacen más fácil de usar y más potente.
Algunas de las principales características de TensorFlow 2.0 incluyen:
API Keras unificada TensorFlow 2.0 unifica las API Keras para el aprendizaje profundo y el aprendizaje automático. Esto hace que sea más fácil crear y entrenar modelos de aprendizaje automático.
Ejecución ansiosa TensorFlow 2.0 ahora admite la ejecución ansiosa, lo que facilita la depuración y el desarrollo de modelos.
Gradientes automáticos TensorFlow 2.0 ahora admite gradientes automáticos, lo que facilita la optimización de modelos.
Nuevos modelos y capas TensorFlow 2.0 introduce una serie de nuevos modelos y capas, lo que te da más flexibilidad para crear modelos de aprendizaje automático.
Mejor rendimiento TensorFlow 2.0 ha sido optimizado para el rendimiento, lo que significa que los modelos se pueden entrenar y ejecutar más rápido.
🤨🤨
la comfiguracion de platzi cambio
Es muy interesante el avance de pasar de TensorFlow 1 a TensorFlow 2 todo el avance, y la facilidad que le da para crear nuevos proyectos.