!wget --no-check-certificate https://storage.googleapis.com/platzi-tf2/cifar100_labels.json \
-O /tmp/cifar100_labels.json
Cómo utilizar TensorFlow 2.0 con Python
Redes neuronales con TensorFlow
Introducción a TensorFlow 2.0
Manejo y preprocesamiento de datos para redes neuronales
Uso de data pipelines
Cómo cargar bases de datos JSON
Cargar bases de datos CSV y BASE 64
Preprocesamiento y limpieza de datos
Keras datasets
Datasets generators
Aprende a buscar bases de datos para deep learning
Cómo distribuir los datos
Crear la red neural, definir capas, compilar, entrenar, evaluar y predicciones
Optimización de precisión de modelos
Métodos de regularización: overfitting y underfitting
Recomendaciones prácticas para ajustar un modelo
Métricas para medir la eficiencia de un modelo: callback
Monitoreo del entrenamiento en tiempo real: early stopping y patience
KerasTuner: construyendo el modelo
KerasTuner: buscando la mejor configuración para tu modelo
Almacenamiento y carga de modelos
Almacenamiento y carga de modelos: pesos y arquitectura
Criterios para almacenar los modelos
Fundamentos de aprendizaje por transferencia
Introducción al aprendizaje por transferencia
Cuándo utilizar aprendizaje por transferencia
Carga de sistemas pre-entrenados en Keras
API funcional de Keras
Uso sistemas pre-entrenados de TensorFlow Hub
Resultados de entrenamiento
Introducción a variables relevantes del TensorBoard
Análisis y publicación de resultados del entrenamiento
Introducción al despliegue de modelos en producción
Siguientes pasos con deep learning
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Convierte tus certificados en títulos universitarios en USA
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
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.
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.
Aportes 19
Preguntas 1
!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
Conjuntos de datos de Keras: una poderosa herramienta para el aprendizaje profundo
Keras, un popular marco de aprendizaje profundo creado sobre TensorFlow, proporciona una manera conveniente de acceder y utilizar varios conjuntos de datos para entrenar y evaluar sus modelos. Estos conjuntos de datos están preprocesados y listos para usarse con el mínimo esfuerzo, lo que le permite ahorrar tiempo y recursos valiosos.
- Keras ofrece un puñado de conjuntos de datos integrados, también conocidos como conjuntos de datos de juguete, que son pequeños y adecuados para principiantes o experimentación rápida. Estos conjuntos de datos se utilizan normalmente para tareas como clasificación o regresión de imágenes. Algunos ejemplos populares incluyen:
MNIST
CIFAR-10
CIFAR-100
Boston Housing
Utilice la base de datos de fashion_mnist y obtuve un bolso
from tensorflow.keras.datasets import fashion_mnist
(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()
num_image = 99
plt.imshow(x_train[num_image])
print(y_train[num_image])
print(labels[y_train[num_image]])
Pueden ocupar la función squeeze para quitarle una dimensión a y_train. Ya que y_train[40] devuelve un [40] y queremos solo el numero para luego buscarlo en el json
print(y_train[40].squeeze(0)) -> devuelve 40 en vez de [40]
print(cifar100_labels[y_train[40].squeeze(0)]) -> ocupamos ese indice dentro del json
MNIST digits classification 😃
La importancia de cargar %matplotlib inline para contar con todos los beneficios de Matplot en Colab antes de cargar la librería %matplotlib inline import matplotlib.pyplot as plt
Mas facil :
import pandas as pd
jso=pd.read_json("https://storage.googleapis.com/platzi-tf2/cifar100_labels.json")
jso[0][78]
#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
![](
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?