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

Monitoreo del entrenamiento en tiempo real: early stopping y patience

16

KerasTuner: construyendo el modelo

17

KerasTuner: buscando la mejor configuraci贸n para tu modelo

Almacenamiento y carga de modelos

18

Almacenamiento y carga de modelos: pesos y arquitectura

19

Criterios para almacenar los modelos

Fundamentos de aprendizaje por transferencia

20

Introducci贸n al aprendizaje por transferencia

21

Cu谩ndo utilizar aprendizaje por transferencia

22

Carga de sistemas pre-entrenados en Keras

23

API funcional de Keras

24

Uso sistemas pre-entrenados de TensorFlow Hub

Resultados de entrenamiento

25

Introducci贸n a variables relevantes del TensorBoard

26

An谩lisis y publicaci贸n de resultados del entrenamiento

27

Introducci贸n al despliegue de modelos en producci贸n

28

Siguientes pasos con deep learning

Crea una cuenta o inicia sesi贸n

隆Contin煤a aprendiendo sin ning煤n costo! 脷nete y comienza a potenciar tu carrera

Adquiere por un a帽o todos los cursos, escuelas y certificados por un precio especial.

Antes: $249

Currency
$219/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Comprar ahora

Termina en:

1D
11H
40M
51S

Cargar bases de datos CSV y BASE 64

5/28
Recursos

Para esta ocasi贸n cargaremos datos almacenados en formatos CSV (Comma Separated Values) y BASE64.

Cargando BASE64

Para empezar, es de vital importancia reconocer los datos con los que estamos trabajando, en esta ocasi贸n revisaremos los datos de sign_mnist_base64 que tendr谩 dentro un JSON con una estructura de llave/valor con la codificaci贸n de la imagen.


Para el primero parte manipularemos im谩genes en BASE64, por lo que importaremos este m贸dulo

``` {code-block} python
import base64

Definimos en la variable url la ubicaci贸n del archivo a extraer la informaci贸n.

url = "/tmp/databasesLoadData/sign_mnist_base64/data.json"

Cargamos los datos del JSON a memoria.

with open(url) as f:
  data = json.load(f)

Cargaremos los datos en una variable, determinamos la locaci贸n a guardar la imagen y abrimos un archivo con el seud贸nimo de file_to_save, decodificaremos el BASE64 y lo guardaremos en un buffer, finalmente lo guardaremos en esta locaci贸n y con esto quedar谩 escrito en disco.

base64_img_bytes = data['b'].encode('utf-8')
path_img = "/tmp/decoded_image.png"
with open(path_img, "wb") as file_to_save:
  decoded_image_data = base64.decodebytes(base64_img_bytes)
  file_to_save.write(decoded_image_data)

Podemos consumir esta imagen abri茅ndola con PIL.

img = Image.open(path_img)
img

Entendiendo la anatom铆a de las im谩genes

Las im谩genes son arrays anidados con diferentes canales (cada canal representando un color diferente), en esta ocasi贸n el 煤nico canal es de la escala de grises, donde cada pixel puede encontrarse entre los valores de 0 - 255, siendo 0 negro y 255 blanco.

Esta interpretaci贸n matricial nos permite guardar im谩genes en estructuras de datos como vectores, donde diferentes formatos son directamente compatibles con esta abstracci贸n.

Representacion matricial de las im谩genes

Cargando CSV

Para esta ocasi贸n haremos uso de pandas para el manejo de CSV, adem谩s de otras librer铆as para la manipulaci贸n e interpretaci贸n de datos.

import numpy as np
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
from PIL import Image
import seaborn as sns

Leeremos los archivos CSV con la funci贸n read_csv de pandas en las locaciones de los archivos de entrenamiento y prueba.

train = pd.read_csv("/tmp/databasesLoadData/sign_mnist_train/sign_mnist_train.csv")
test = pd.read_csv("/tmp/databasesLoadData/sign_mnist_test/sign_mnist_test.csv")

Podemos analizar los primeros datos del dataset con el m茅todo head que nos traer谩 los primeros 5 registros, notaremos que son 785 elementos, donde el primero pertenece a la etiqueta de la imagen y el resto a cada pixel (28x28=784).

train.head()
5 rows 脳 785 columns

Tenemos acceso a las dimensiones del dataset con el atributo shape, que nos retornar谩 27455 im谩genes de 28x28 con etiqueta.

train.shape
(27455, 785)

Para arreglar la dimensionalidad, separaremos la etiqueta de los datos, por lo que aislaremos los valores en una nueva variable.

labels = train['label'].values

A su vez, eliminaremos esta columna del dataset original.

train.drop('label', axis = 1, inplace = True)

train.head()
5 rows784 columns

Para almacenar las im谩genes en memoria las cargaremos desde el dataframe (煤nicamente tomando los atributos de values), si verificamos las dimensiones tendremos un array de numpy de 27455x784 que podremos graficar desde matplotlib.

images = train.values
images.shape
(27455, 784)
plt.imshow(images[1].reshape(28,28))

Con esto hemos cargado im谩genes a partir de formato BASE64 y CSV a memoria para ser interpretadas como tensores.

Contribuci贸n creada por Sebasti谩n Franco G贸mez.

Aportes 2

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Interesante el formato Base64, informaci贸n que me sirvi贸 en el siguiente enlace:
https://www.serverlab.ca/tutorials/linux/administration-linux/how-to-base64-encode-and-decode-from-command-line/

Leer la base de datos en JSON con contenido BASE64

#
import json
import base64
from PIL import Image

url = "/tmp/databasesLoadData/sign_mnist_base64/data.json"
with open(url) as f:
    data = json.load(f)

base64_img_bytes = data["b"].encode("utf-8") #
path_img = "/tmp/decoded_image.png"
with open(path_img, "wb") as file_to_save:
    decoded_image_data = base64.decodebytes(base64_img_bytes)  
    file_to_save.write(decoded_image_data)

img = Image.open(path_img)
img

Leer la base de datos en CSV

#
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from PIL import Image 

train = pd.read_csv("/tmp/databasesLoadData/sign_mnist_train/sign_mnist_train.csv")
test = pd.read_csv("/tmp/databasesLoadData/sign_mnist_test/sign_mnist_test.csv")

print(train.head())
print(train.shape)
labels = train['label'].values
train.drop('label', axis = 1, inplace = True)
print(train.head())
images = train.values