Ejemplos de TensorFlow
Este tutorial fue diseñado para profundizar fácilmente en TensorFlow, a través de ejemplos. Para facilitar la lectura, incluye cuadernos y códigos fuente con explicación, tanto para TF v1 como para v2.
Es adecuado para principiantes que desean encontrar ejemplos claros y concisos sobre TensorFlow. Además de las implementaciones tradicionales de TensorFlow "sin procesar", también puede encontrar las últimas prácticas de API de TensorFlow (como layers
, estimator
, dataset
, ...).
Actualización (16/05/2020): Mover todos los ejemplos predeterminados a TF2. Para ejemplos de TF v1: consulte aquí.
Índice de tutoriales
0 - Requisito previo
- Introducción al aprendizaje automático.
- Introducción al conjunto de datos MNIST.
1 - Introducción
- Hola mundo (cuaderno). Ejemplo muy sencillo para aprender a imprimir "hola mundo" usando TensorFlow 2.0+.
- Operaciones Básicas (cuaderno). Un ejemplo simple que cubre las operaciones básicas de TensorFlow 2.0+.
2 - Modelos Básicos
- Regresión lineal (cuaderno). Implemente una regresión lineal con TensorFlow 2.0+.
- Regresión logística (cuaderno). Implemente una regresión logística con TensorFlow 2.0+.
- Word2Vec (incrustación de palabras) (cuaderno). Cree un modelo de incrustación de Word (Word2Vec) a partir de datos de Wikipedia, con TensorFlow 2.0+.
- GBDT (árboles de decisión impulsados por gradiente) (cuadernos). Implemente árboles de decisión potenciados por gradiente con TensorFlow 2.0+ para predecir el valor de la vivienda utilizando el conjunto de datos de Boston Housing.
3 - Redes neuronales
supervisado
- Red neuronal simple (cuaderno). Utilice la API de 'capas' y 'modelo' de TensorFlow 2.0 para construir una red neuronal simple para clasificar el conjunto de datos de dígitos MNIST.
- Red neuronal simple (bajo nivel) (cuaderno). Implementación sin procesar de una red neuronal simple para clasificar el conjunto de datos de dígitos MNIST.
- Red neuronal convolucional (cuaderno). Utilice la API de 'capas' y 'modelo' de TensorFlow 2.0+ para construir una red neuronal convolucional para clasificar el conjunto de datos de dígitos MNIST.
- Red neuronal convolucional (bajo nivel) (cuaderno). Implementación sin procesar de una red neuronal convolucional para clasificar el conjunto de datos de dígitos MNIST.
- Red neuronal recurrente (LSTM) (cuaderno). Cree una red neuronal recurrente (LSTM) para clasificar el conjunto de datos de dígitos MNIST, utilizando la API de 'capas' y 'modelo' de TensorFlow 2.0.
- Red neuronal recurrente bidireccional (LSTM) (cuaderno). Cree una red neuronal recurrente bidireccional (LSTM) para clasificar el conjunto de datos de dígitos MNIST, utilizando la API de 'capas' y 'modelo' de TensorFlow 2.0+.
- Red neuronal dinámica recurrente (LSTM) (cuaderno). Cree una red neuronal recurrente (LSTM) que realice cálculos dinámicos para clasificar secuencias de longitud variable, utilizando la API de 'capas' y 'modelo' de TensorFlow 2.0+.
sin supervisión
- Codificador automático (portátil). Cree un codificador automático para codificar una imagen en una dimensión inferior y reconstruirla.
- DCGAN (Redes adversarias generativas convolucionales profundas) (cuaderno). Cree una red adversaria generativa convolucional profunda (DCGAN) para generar imágenes a partir de ruido.
4 - Utilidades
- Guardar y restaurar un modelo (cuaderno). Guarde y restaure un modelo con TensorFlow 2.0+.
- Cree capas y módulos personalizados (cuaderno). Aprenda a crear sus propias capas/módulos e integrarlos en los modelos TensorFlow 2.0+.
- Tensorboard (cuaderno). Realice un seguimiento y visualice gráficos de cálculo de redes neuronales, métricas, pesos y más utilizando el tensorboard TensorFlow 2.0+.
5 - Gestión de datos
- Cargar y analizar datos (cuaderno). Cree una canalización de datos eficiente con TensorFlow 2.0 (matrices Numpy, imágenes, archivos CSV, datos personalizados,...).
- Construya y cargue TFRecords (cuaderno). Convierta datos al formato TFRecords y cárguelos con TensorFlow 2.0+.
- Transformación de imágenes (es decir, aumento de imágenes) (cuaderno). Aplique varias técnicas de aumento de imágenes con TensorFlow 2.0+ para generar imágenes distorsionadas para el entrenamiento.
6 - Hardware
- Entrenamiento multi-GPU (portátil). Entrene una red neuronal convolucional con múltiples GPU en el conjunto de datos CIFAR-10.
TensorFlow v1
El índice del tutorial para TF v1 está disponible aquí: Ejemplos de TensorFlow v1.15. O consulte a continuación una lista de ejemplos.
Conjunto de datos
Algunos ejemplos requieren un conjunto de datos MNIST para entrenamiento y prueba. No se preocupe, este conjunto de datos se descargará automáticamente cuando ejecute ejemplos. MNIST es una base de datos de dígitos escritos a mano; para obtener una descripción rápida de ese conjunto de datos, puede consultar este cuaderno.
Sitio web oficial: http://yann.lecun.com/exdb/mnist/.
Instalación
Para descargar todos los ejemplos, simplemente clona este repositorio:
git clone https://github.com/aymericdamien/TensorFlow-Examples
Para ejecutarlos, también necesitas la última versión de TensorFlow. Para instalarlo:
o (con soporte de GPU):
pip install tensorflow_gpu
Para obtener más detalles sobre la instalación de TensorFlow, puede consultar la Guía de instalación de TensorFlow.
Ejemplos de TensorFlow v1: índice
El índice del tutorial para TF v1 está disponible aquí: Ejemplos de TensorFlow v1.15.
0 - Requisito previo
- Introducción al aprendizaje automático.
- Introducción al conjunto de datos MNIST.
1 - Introducción
- Hola mundo (cuaderno) (código). Ejemplo muy sencillo para aprender a imprimir "hola mundo" usando TensorFlow.
- Operaciones Básicas (cuaderno) (código). Un ejemplo simple que cubre las operaciones básicas de TensorFlow.
- Conceptos básicos de TensorFlow Eager API (cuaderno) (código). Comience con la API Eager de TensorFlow.
2 - Modelos Básicos
- Regresión lineal (cuaderno) (código). Implemente una regresión lineal con TensorFlow.
- Regresión lineal (api ansiosa) (cuaderno) (código). Implemente una regresión lineal utilizando la API Eager de TensorFlow.
- Regresión logística (cuaderno) (código). Implemente una regresión logística con TensorFlow.
- Regresión logística (api ansiosa) (cuaderno) (código). Implemente una regresión logística utilizando la API Eager de TensorFlow.
- Vecino más cercano (cuaderno) (código). Implemente el algoritmo del vecino más cercano con TensorFlow.
- K-Means (cuaderno) (código). Cree un clasificador K-Means con TensorFlow.
- Random Forest (cuaderno) (código). Cree un clasificador de bosque aleatorio con TensorFlow.
- Árbol de decisión impulsado por gradiente (GBDT) (cuaderno) (código). Cree un árbol de decisión impulsado por gradiente (GBDT) con TensorFlow.
- Word2Vec (Word Embedding) (cuaderno) (código). Cree un modelo de incrustación de Word (Word2Vec) a partir de datos de Wikipedia con TensorFlow.
3 - Redes neuronales
supervisado
- Red neuronal simple (cuaderno) (código). Cree una red neuronal simple (también conocida como perceptrón multicapa) para clasificar el conjunto de datos de dígitos MNIST. Implementación sin formato de TensorFlow.
- Red neuronal simple (tf.layers/estimator api) (cuaderno) (código). Utilice la API de 'capas' y 'estimador' de TensorFlow para construir una red neuronal simple (también conocida como Perceptrón multicapa) para clasificar el conjunto de datos de dígitos MNIST.
- Red neuronal simple (api ansiosa) (cuaderno) (código). Utilice la API TensorFlow Eager para construir una red neuronal simple (también conocida como Perceptrón multicapa) para clasificar el conjunto de datos de dígitos MNIST.
- Red neuronal convolucional (cuaderno) (código). Construya una red neuronal convolucional para clasificar el conjunto de datos de dígitos MNIST. Implementación sin formato de TensorFlow.
- Red neuronal convolucional (tf.layers/estimator api) (cuaderno) (código). Utilice la API de 'capas' y 'estimador' de TensorFlow para construir una red neuronal convolucional para clasificar el conjunto de datos de dígitos MNIST.
- Red neuronal recurrente (LSTM) (cuaderno) (código). Cree una red neuronal recurrente (LSTM) para clasificar el conjunto de datos de dígitos MNIST.
- Red neuronal recurrente bidireccional (LSTM) (cuaderno) (código). Cree una red neuronal recurrente bidireccional (LSTM) para clasificar el conjunto de datos de dígitos MNIST.
- Red neuronal recurrente dinámica (LSTM) (cuaderno) (código). Cree una red neuronal recurrente (LSTM) que realice cálculos dinámicos para clasificar secuencias de diferente longitud.
sin supervisión
- Codificador automático (cuaderno) (código). Cree un codificador automático para codificar una imagen en una dimensión inferior y reconstruirla.
- Codificador automático variacional (cuaderno) (código). Cree un codificador automático variacional (VAE) para codificar y generar imágenes a partir de ruido.
- GAN (Generative Adversarial Networks) (cuaderno) (código). Construya una red generativa adversaria (GAN) para generar imágenes a partir del ruido.
- DCGAN (Redes adversarias generativas convolucionales profundas) (cuaderno) (código). Cree una red adversaria generativa convolucional profunda (DCGAN) para generar imágenes a partir de ruido.
4 - Utilidades
- Guardar y restaurar un modelo (cuaderno) (código). Guarde y restaure un modelo con TensorFlow.
- Tensorboard: visualización de gráficos y pérdidas (cuaderno) (código). Utilice Tensorboard para visualizar el gráfico de cálculo y trazar la pérdida.
- Tensorboard: visualización avanzada (cuaderno) (código). Profundizando en Tensorboard; visualizar las variables, gradientes y más...
5 - Gestión de datos
- Cree un conjunto de datos de imágenes (cuaderno) (código). Cree su propio conjunto de datos de imágenes con colas de datos de TensorFlow, desde carpetas de imágenes o un archivo de conjunto de datos.
- API de conjunto de datos de TensorFlow (cuaderno) (código). Presentamos la API TensorFlow Dataset para optimizar la canalización de datos de entrada.
- Cargar y analizar datos (cuaderno). Cree una canalización de datos eficiente (matrices numerosas, imágenes, archivos CSV, datos personalizados,...).
- Construya y cargue TFRecords (cuaderno). Convierta datos al formato TFRecords y cárguelos.
- Transformación de imágenes (es decir, aumento de imágenes) (cuaderno). Aplicar diversas técnicas de aumento de imágenes para generar imágenes distorsionadas para el entrenamiento.
6 - Múltiples GPU
- Operaciones básicas en múltiples GPU (portátil) (código). Un ejemplo sencillo para introducir múltiples GPU en TensorFlow.
- Entrene una red neuronal en múltiples GPU (portátil) (código). Una implementación clara y sencilla de TensorFlow para entrenar una red neuronal convolucional en múltiples GPU.
Más ejemplos
Los siguientes ejemplos provienen de TFLearn, una biblioteca que proporciona una interfaz simplificada para TensorFlow. Puede echar un vistazo, hay muchos ejemplos y operaciones y capas prediseñadas.
Tutoriales
- Inicio rápido de TFLearn. Aprenda los conceptos básicos de TFLearn a través de una tarea concreta de aprendizaje automático. Construya y entrene un clasificador de redes neuronales profundas.
Ejemplos
- Ejemplos de TFLearn. Una gran colección de ejemplos que utilizan TFLearn.