Keras datasets
Clase 7 de 28 • Curso Profesional de Redes Neuronales con TensorFlow
Contenido del curso
- 3

Carga y Procesamiento de Bases de Datos en Inteligencia Artificial
02:48 - 4

Carga de Bases de Datos JSON desde GCP en Google Colab
10:25 - 5

Codificación Base64 y Gestión de Imágenes en Google Colab
12:50 - 6

Preprocesamiento y limpieza de datos
12:15 - 7

Keras datasets
10:14 - 8

Datasets generators
18:36 - 9

Aprende a buscar bases de datos para deep learning
04:14 - 10

Cómo distribuir los datos
06:50 - 11

Crear la red neural, definir capas, compilar, entrenar, evaluar y predicciones
14:35
- 12

Métodos de regularización: overfitting y underfitting
11:16 - 13

Recomendaciones prácticas para ajustar un modelo
12:00 - 14

Métricas para medir la eficiencia de un modelo: callback
08:18 - 15

Monitoreo del entrenamiento en tiempo real: early stopping y patience
07:04 - 16

KerasTuner: construyendo el modelo
13:54 - 17

KerasTuner: buscando la mejor configuración para tu modelo
08:45
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.
{code-block} python
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).
{code-block} python
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).
{code-block} python
(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.
```{code-block} python 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?
{code-block} python
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.
{code-block} bash
!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.
{code-block} 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.
{code-block} python
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.