Tutorial de TensorFlow para principiantes
TensorFlow es uno de los frameworks más populares para el aprendizaje profundo y el aprendizaje automático. Desarrollado por el equipo de Google Brain, TensorFlow se ha utilizado ampliamente en numerosos proyectos de investigación y aplicaciones industriales. Este artículo ofrece un tutorial paso a paso para ayudarte, como principiante, a empezar a usar TensorFlow.
1. Comprender los conceptos básicos de TensorFlow
Antes de comenzar a instalar y usar TensorFlow, es importante comprender qué es y los conceptos básicos que lo sustentan. TensorFlow es un marco de código abierto para computación numérica y aprendizaje automático. Utiliza grafos de flujo de datos para realizar operaciones numéricas, donde los nodos del grafo representan operaciones matemáticas y las aristas representan matrices de datos multidimensionales (tensores) conectadas entre ellos.
2. Instalación de TensorFlow
El primer paso para usar TensorFlow es instalarlo. Aquí te mostramos cómo instalar TensorFlow usando pip, el gestor de paquetes de Python.
1. Instalación de Python:
Asegúrate de tener Python instalado en tu sistema. TensorFlow es compatible con Python versiones 3.6 a 3.9 (al momento de escribir este texto). Puedes descargar Python desde el sitio web oficial.
2. Entorno virtual:
Se recomienda encarecidamente crear un entorno virtual para aislar su proyecto de TensorFlow:
"Sh
pitón -m venv myenv
source myenv/bin/activate Para usuarios de Mac/Linux
myenv\Scripts\activate Para usuarios de Windows
"`
3. Instalación de TensorFlow:
Ahora, instala TensorFlow usando pip:
"Sh
pip instalar tensorflow
"`
3. Hola Mundo con TensorFlow
Ahora que TensorFlow está instalado, vamos a crear un script sencillo de Python para verificar la instalación. Crea un nuevo archivo de Python y nómbralo `hello_tensorflow.py`.
“`pitón
importar tensorflow como tf
Crear una constante
hola = tf.constant('¡Hola, TensorFlow!')
Iniciar sesión
con tf.Session() como sesión:
resultado = sess.run(hola)
imprimir (resultado)
"`
Adapte el código según la versión 2.x de TensorFlow:
“`pitón
importar tensorflow como tf
Crear una constante
hola = tf.constant('¡Hola, TensorFlow!')
Ejecutar usando ejecución inmediata (activada por defecto)
print(hola.numpy())
"`
Guarda el archivo y luego ejecuta:
"Sh
python hello_tensorflow.py
"`
4. Comprensión de los tensores y las operaciones básicas
Los tensores son la estructura de datos principal en TensorFlow, y son matrices multidimensionales. Aquí tienes algunos ejemplos para ayudarte a comprender los tensores:
“`pitón
importar tensorflow como tf
Creación de tensores
escalar = tf. constante(7) escalar
vector = tf.constante([1, 2, 3]) vector
matriz = tf.constante([[1, 2], [3, 4]]) matriz
tensor3d = tf.constant([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) Tensor 3D
print(f'Escalar: {scalar}')
print(f'Vector: {vector}')
print(f'Matriz: {matrix}')
print(f'Tensor 3D: {tensor3d}')
"`
Para realizar operaciones básicas con tensores:
“`pitón
a = tf.constant([[1, 2], [3, 4]])
b = tf.constant([[5, 6], [7, 8]])
Operación de adición
agregar = tf.add(a, b)
Operaciones de multiplicación de matrices
mul = tf.matmul(a, b)
print(f'Adición: {add}')
print(f'Multiplicación de matrices: {mul}')
"`
5. Creación de un modelo de red neuronal simple
El siguiente paso es crear un modelo de red neuronal simple. Crearemos un modelo de clasificación de imágenes utilizando el conjunto de datos MNIST, una base de datos de imágenes de dígitos escritos a mano. ¡Comencemos!
“`pitón
importar tensorflow como tf
from tensorflow.keras import datasets, layers, models
Descargando el conjunto de datos MNIST
(imágenes_de_entrenamiento, etiquetas_de_entrenamiento), (imágenes_de_prueba, etiquetas_de_prueba) = datasets.mnist.load_data()
Normalización de imágenes
imágenes_de_entrenamiento, imágenes_de_prueba = imágenes_de_entrenamiento / 255.0, imágenes_de_prueba / 255.0
Fabricación de un modelo
modelo = modelos.Secuencial([
capas.Aplanar(forma_entrada=(28, 28)),
capas.Dense(128, activación='relu'),
capas.Densa(10)
])
Compilación de modelos
modelo.compilar(optimizador='adam',
pérdida=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
métricas=['precisión'])
Entrenamiento del modelo
modelo.fit(train_images, train_labels, epochs=5)
Probando el modelo
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'Precisión de la prueba: {test_acc}')
"`
Explicación:
– Conjuntos de datos: Importamos y cargamos el conjunto de datos MNIST.
– Preprocesamiento: Normalizar el conjunto de datos dividiendo los valores de los píxeles por 255.
– Modelo: Definimos un modelo simple con dos capas. La primera capa es una capa de aplanamiento para convertir la imagen 2D en una matriz 1D. La segunda capa es una capa densa con 128 neuronas y función de activación `relu`, y la última es una capa densa con 10 neuronas que representan 10 clases.
– Compilación: Compilamos el modelo utilizando el optimizador `adam` y `SparseCategoricalCrossentropy` como función de pérdida.
– Entrenamiento: Entrenar el modelo durante 5 épocas.
– Evaluar: Evaluar el modelo con datos de prueba.
6. Guardar y cargar modelos
Después de entrenar un modelo, es posible que desee guardarlo para usarlo posteriormente sin tener que volver a entrenarlo. A continuación, le mostramos cómo guardar y cargar un modelo:
“`pitón
Guardando el modelo
modelo.guardar('mi_modelo.h5')
Modelo de carga
nuevo_modelo = tf.keras.models.load_model('my_model.h5')
Verificación del modelo cargado
pérdida, acc = new_model.evaluate(test_images, test_labels)
print(f'Precisión del modelo cargado: {acc}')
"`
conclusión
Esta guía ofrece una introducción detallada a TensorFlow para principiantes. Hemos cubierto la instalación, las operaciones básicas con tensores y la creación de un modelo de red neuronal simple utilizando el conjunto de datos MNIST. TensorFlow ofrece muchas capacidades avanzadas para explorar, como el procesamiento avanzado de datos, modelos más complejos y el uso de TensorFlow en dispositivos como TPU y GPU. Esperamos que este tutorial te ayude a iniciarte en el mundo del aprendizaje automático con TensorFlow.