Ir al contenido principal

TensorFlow: una herramienta para Machine Learning y Deep Learning

TensorFlow es una biblioteca de software libre y de código abierto, desarrollada por Google, para el aprendizaje automático (machine learning) y el aprendizaje profundo (deep learning). La cual se utiliza para aprendizaje automático, el procesamiento de lenguaje natutal, reconocimiento de imágenes y demás soluciones que tengan que ver con el aprendizaje automático.

Instalarlo no te llevará mucho tiempo. Solo abre una consola y teclea lo siguiente:

$ pip install tensorflow

Una vez instalado verificamos:

$ pip show tensorflow
Name: tensorflow
Version: 2.20.0
Summary: TensorFlow is an open source machine learning framework for everyone.
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email: packages@tensorflow.org
License: Apache 2.0
Location: C:\Users\HP\AppData\Local\Programs\Python\Python313\Lib\site-packages
Requires: absl-py, astunparse, flatbuffers, gast, google_pasta, grpcio, h5py, keras, libclang, ml_dtypes, numpy, opt_einsum, packaging, protobuf, requests, setuptools, six, tensorboard, termcolor, typing_extensions, wrapt
Required-by:

También podemos descargar una imagen de Docker:

$ docker pull tensorflow/tensorflow:latest 
$ docker run -it -p 8888:8888 tensorflow/tensorflow:latest-jupyter 

Con esto descargamos la última versión de la imagen oficial y la ejecutamos (con Jupyter).

TensorFlow nos permite:

  • Construir y entrenar modelos de Machine Learning y Deep Learning (redes neuronales, CNN, RNN, etc.). 
  • Procesar datos para tareas como clasificación, regresión, clustering o generación de texto/imágenes. 
  • Desarrollar aplicaciones de visión por computadora (ej. detección de objetos), NLP (ej. chatbots) y series temporales. 
  • Escalar modelos con soporte para GPUs/TPUs y despliegue en producción (web, móvil, edge). 
  • Personalizar modelos con capas y funciones avanzadas para investigación o prototipado.

He aquí un ejemplo del uso de TensorFlow para crear, entrenar y evaluar un modelo de red neuronal que clasifica dígitos escritos a mano del conjunto de datos MNIST (imágenes de 28x28 píxeles de dígitos del 0 al 9).

ejemplo_tensor.py

import tensorflow as tf
from tensorflow.keras import layers, models
import numpy as np

# 1. Cargar y preprocesar el conjunto de datos MNIST
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()

# Normalizar los datos (valores de píxeles de 0-255 a 0-1)
x_train = x_train.astype('float32') / 255.0
x_test = x_test.astype('float32') / 255.0

# 2. Crear el modelo de red neuronal
model = models.Sequential([
    layers.Flatten(input_shape=(28, 28)),  # Aplana las imágenes 28x28 a un vector de 784
    layers.Dense(128, activation='relu'),   # Capa densa con 128 neuronas y activación ReLU
    layers.Dense(10, activation='softmax')  # Capa de salida con 10 clases (dígitos 0-9)
])

# 3. Compilar el modelo
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# 4. Entrenar el modelo
model.fit(x_train, y_train, epochs=5, batch_size=32, validation_split=0.2)

# 5. Evaluar el modelo en el conjunto de prueba
test_loss, test_accuracy = model.evaluate(x_test, y_test)
print(f'\nPrecisión en el conjunto de prueba: {test_accuracy:.4f}')

# 6. Hacer una predicción (ejemplo con una imagen)
sample_image = x_test[0:1]  # Tomar la primera imagen de prueba
prediction = model.predict(sample_image)
predicted_digit = np.argmax(prediction)
print(f'Dígito predicho para la imagen de prueba: {predicted_digit}')

Ejecución y salida:

$ python ejemplo_tensor.py
Precisión en el conjunto de prueba: 0.9780
Dígito predicho para la imagen de prueba: 7

Usar TensorFlow requiere no solo saber programar en Python, también es indispensable contar con habilidades en:

  • Matemáticas y estadística: Conocimientos básicos de álgebra lineal (vectores, matrices), cálculo (derivadas, optimización) y probabilidad (distribuciones, estadística bayesiana). 
  • Machine Learning: Entender conceptos como regresión, clasificación, redes neuronales, funciones de pérdida, optimización (ej. gradiente descendente) y métricas de evaluación. 
  • Procesamiento de datos: Habilidad para limpiar, normalizar y preprocesar datos (usando Pandas, NumPy, etc.). 
  • Programación estructurada: Familiaridad con estructuras de datos, funciones y buenas prácticas de codificación. 
  • Conocimiento de Deep Learning: Entender arquitecturas como CNN, RNN o transformers para casos avanzados. 
  • Manejo de hardware: Conocimientos básicos de GPUs/TPUs para entrenar modelos grandes (opcional, pero útil). 
  • Resolución de problemas: Capacidad para depurar errores y optimizar modelos (hiperparámetros, regularización).

TensorFlow es una de las miles de librerías que ahorran mucho trabajo a la hora de trabajar con Python. Pero es indispensable contar con conocimiento semi avanzado en otras áreas como el Álgebra, Cálculo, Estadística, Probabilidad y las Redes neuronales para sacarle un verdadero provecho. Sin contar que también es necesario habilidades en el manejo de servicios de la nube (GCP, AWS, Azure, etc.) y contenedores (Docker / Kubernetes).

Enlaces:

https://www.tensorflow.org/
https://es.wikipedia.org/wiki/TensorFlow

Comentarios

Entradas populares de este blog

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...

TIOBE index 2024

El índice TIOBE (o índice de la comunidad de programación TIOBE) mide la popularidad de los lenguajes de programación. Su índice no se basa en qué lenguaje de programación es mejor, si tiene mejor perfomance, si posee escalabilidad, si es más sencillo de aprender, de usar, de implementar, etc. Sólo se basa en la popularidad. En el número de referencias ya sea en blogs, foros de consulta, etc. No necesariamente si las empresas lo están usando en alguno de sus desarrollos. Este índice es útil para darse una idea qué lenguaje está cobrando más popularidad y prestigio. Enseguida una tabla con los primeros 5 lenguajes más populares. Índice de Noviembre 2024   Nov 2024  Nov 2023  Change  Programming Language  Ratings  Change  1  1    Python  22.85%  +8.69%  2  3  +  C++  10.64%  +0.29%  3  4  +  Java  9.60%  +1.26%  4 ...

Programación Windows Batch (CMD) parte 4

Siguiendo con la serie de post sobre programación ( 1 , 2 , y 3 ) batch ahora veremos algunas cosas como operaciones aritméticas, operadores lógicos  y uso de ficheros. Cuando somos administradores de servidores o desarrolladores muchas veces tenemos que realizar tareas que nos quitan, relativamente, tiempo valioso que podríamos ocupar para otras cosas (como ver nuestro Facebook, jeje, broma).  Aprender a escribir scripts que nos faciliten algunas tareas siempre es útil. Por ejemplo, conocer todas las características técnicas de nuestro equipo de cómputo nos servirá cuando se realiza peritajes informáticos y soporte al equipo. Realizar respaldos automáticos a nuestras carpetas , archivos y directorios será más sencillo gracias a un script. Pero antes debemos aprender lo básico de la programación en batch. Ejemplo 1. Operaciones aritméticas básicas. aritmetica.bat @ echo off ::Nombre del archivo, imprimirá: aritmetica.bat echo %0 :: Set nos servirá para a...