Cómo utilizar TensorFlow 2.0 con Python

1

Redes neuronales con TensorFlow

2

Introducción a TensorFlow 2.0

Manejo y preprocesamiento de datos para redes neuronales

3

Uso de data pipelines

4

Cómo cargar bases de datos JSON

5

Cargar bases de datos CSV y BASE 64

6

Preprocesamiento y limpieza de datos

7

Keras datasets

8

Datasets generators

9

Aprende a buscar bases de datos para deep learning

10

Cómo distribuir los datos

11

Crear la red neural, definir capas, compilar, entrenar, evaluar y predicciones

Optimización de precisión de modelos

12

Métodos de regularización: overfitting y underfitting

13

Recomendaciones prácticas para ajustar un modelo

14

Métricas para medir la eficiencia de un modelo: callback

15

KerasTuner: buscando la mejor configuración para tu modelo

16

KerasTuner: buscando la mejor configuración para tu modelo

17

Monitoreo del entrenamiento en tiempo real: early stopping y patience

18

KerasTuner: construyendo el modelo

19

KerasTuner: buscando la mejor configuración para tu modelo

20

KerasTuner: buscando la mejor configuración para tu modelo

21

KerasTuner: buscando la mejor configuración para tu modelo

Almacenamiento y carga de modelos

22

Almacenamiento y carga de modelos: pesos y arquitectura

23

Criterios para almacenar los modelos

Fundamentos de aprendizaje por transferencia

24

Introducción al aprendizaje por transferencia

25

Cuándo utilizar aprendizaje por transferencia

26

Carga de sistemas pre-entrenados en Keras

27

API funcional de Keras

28

Uso sistemas pre-entrenados de TensorFlow Hub

Resultados de entrenamiento

29

Introducción a variables relevantes del TensorBoard

30

Análisis y publicación de resultados del entrenamiento

31

Introducción al despliegue de modelos en producción

32

Siguientes pasos con deep learning

33

Comparte tu proyecto de detección de señas y certifícate

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

5D
4H
29M
6S

Keras datasets

7/33
Recursos

Keras nos ofrece una serie de datasets predeterminados con los cuales alimentar modelos, estas bases de datos son ideales para probar el rendimiento de diferentes algoritmos de machine learning porque sus datos se encuentran bastante limpios y listos para ser digeridos.

En la documentación oficial de Keras puedes encontrar los datasets disponibles, para esta ocasión trabajaremos con CIFAR100, un dataset de 60.000 imágenes de 100 clases diferentes relacionadas a objetos del mundo como vehículos, animales y demás.

Puedes leer la estructura básica y un quickstart de uso en la documentación, si quieres más detalle, puede ir a la página oficial del dataset donde tendrás acceso a información más específica.

Descargando y manipulando Keras datasets

Importaremos los módulos a trabajar, donde el protagonista será TensorFlow.

import tensorflow as tf
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt

Para extraer el dataset, haremos uso del módulo de datasets de Keras (que viene incluido en TensorFlow).

from tensorflow.keras.datasets import cifar100

Cargaremos el dataset con la función load_data y será almacenada en 2 tuplas relacionadas a los datos de entrenamiento (que serán 50.000) y los datos de prueba (los 10.000 restantes).

(x_train, y_train), (x_test, y_test) = cifar100.load_data(label_mode = "fine")

Si verificamos las dimensiones del set de entrenamiento, obtendremos en x un conjunto de 50.000 imágenes de 32x32 en 3 canales RGB, mientras que las etiquetas serán un array de 50.000 elementos del 0 al 99.

print(x_train.shape)
print(y_train.shape)

(50000, 32, 32, 3)
(50000, 1)

Podemos acceder a cualquier elemento del dataset y graficarlo con matplotlib, donde la etiqueta será 78, pero, ¿Qué significa este valor?

num_image = 40
plt.imshow(x_train[num_image])
print(y_train[num_image])
78

Generalmente, las etiquetas son guardadas en sesiones diferentes, es decir, externamente existe un diccionario de “traducción” de estos valores a su homólogo real. Para obtener esta traducción, haremos su descarga desde un repositorio externo.

!wget --no-check-certificate https://storage.googleapis.com/platzi-tf2/cifar100_labels.json \
    -O /tmp/cifar100_labels.json

Deserializaremos el JSON para hacerlo compatible con los diccionarios de Python.

import json
with open("/tmp/cifar100_labels.json") as fine_labels:
  cifa100r_labels = json.load(fine_labels)

Ahora podemos entender a qué se refieren las etiquetas numéricas.

num_label = 78
plt.imshow(x_train[num_label])
print(cifar100_labels[y_train[num_label][0]])
Forest

Con esto hemos cargado un dataset funcional para ser procesado y digerido por tus modelos.

Contribución creada por Sebastián Franco Gómez.

Aportes 12

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

!wget --no-check-certificate https://storage.googleapis.com/platzi-tf2/cifar100_labels.json \
    -O /tmp/cifar100_labels.json

Para el reto de la semana cargué el dataset de Fashion MNIST:

Creo que es una bota jajajaja

Hay un error en uno de los print. La corrección es la siguiente:

print(cifar100_labels[y_train[num_label][0]])

Utilice el Dataset fashion_mnist e hice la consulta al elemento 52

aparte me cree una variable de llaves, de acuerdo a la informacion del dataset de Keras

Pero no se si sea correcto hacer esto

import tensorflow as tf
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
from tensorflow.keras.datasets import fashion_mnist

(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()
fashion_mnist_labels = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']

num_image = 52
plt.imshow(x_train[num_image])
print(fashion_mnist_labels[y_train[num_image]])

Si están en un entorno como VSCode y el comando wget no se los reconoce, pueden internar de la siguiente forma con curl

!curl -k -o  cifar100_labels.json https://storage.googleapis.com/platzi-tf2/cifar100_labels.json

#desacargamos la subclase.
(x_train,y_train),(x_text,y_test) = tf.keras.datasets.
cifar100.load_data(label_mode=“fine”)

from tensorflow.keras.datasets import fashion_mnist
 (x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()
plt.imshow(x_train[10])

Si estan de forma local y no pueden por alguna razon hacer wget o curl, también puede ejecutar este codigo de python

import urllib.request
url = 'https://storage.googleapis.com/platzi-tf2/cifar100_labels.json'
filename = 'cifar100_labels.json'
urllib.request.urlretrieve(url, filename) 

Por si a alguien no le sale la importacion de keras, la siguiente puede ser una alternativa:

from tensorflow import keras

(x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar100.load_data()

Trabaje con el dataset de MNIST

from tensorflow.keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
assert x_train.shape == (60000, 28, 28)
assert x_test.shape == (10000, 28, 28)
assert y_train.shape == (60000,)
assert y_test.shape == (10000,)
num_image = 55
plt.imshow(x_train[num_image])
print(y_train[num_image])
num_image = 36
plt.imshow(x_train[num_image])
print(y_train[num_image])

Tambien cargué el dataset fashion_mnist
![](