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

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
19 Hrs
56 Min
29 Seg

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.

{code-block} python { "b": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAcABwBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/AOhS246VBdyJbqyDmbaGVSOuWxTUk3XckDKcGVkjI/2VBOf1qcwc9K00i4rnNbCLrcSPMkQKJ97PUNnHHtmrllEf7US3dSJIEklcEdd7DBHtjP5VrGLmrSpxWHewQnxNHNOBsAJOfYZpvh8zXup394xPkKBAg9SDk/lx+db5j5pCcICO+K47X7+cL5uRv2kZxXW6TaRWek20UIIBQOSepZhkk/iasMxDV//Z" }

Para la primer 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.

{code-block} python url = "/tmp/databasesLoadData/sign_mnist_base64/data.json"

Cargamos los datos del JSON a memoria.

{code-block} python 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.

{code-block} python 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.

{code-block} python 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.

python 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.

python 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).

python 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.

python train.shape (27455, 785)

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

python labels = train['label'].values

A su vez, eliminaremos esta columna del dataset original.

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

train.head() 5 rows × 784 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.

python 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 5

Preguntas 3

Ordenar por:

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

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

Cargar bases de datos CSV y BASE 64

CSV (Comma-Separated Values):

Un archivo CSV es un archivo de texto plano que utiliza comas para separar los valores de los datos. Es un formato simple y ampliamente utilizado para intercambiar datos entre diferentes aplicaciones.

BASE 64:

BASE 64 es un esquema de codificación binaria a texto que se utiliza para convertir datos binarios en una cadena de caracteres ASCII. Esto permite que los datos binarios se transmitan de forma segura a través de canales que no admiten la transmisión de datos binarios puros.

Recursos adicionales:

Documentación de Excel: https://support.microsoft.com/en-us/excel
Documentación de Pandas: https://pandas.pydata.org/docs/
Documentación de SQL Server: https://learn.microsoft.com/en-us/sql/sql-server/?view=sql-server-ver16

Todo mi respeto para el profesor que se toma el tiempo de contestar las dudas. Muchos profesores no lo hacen
😂🤍
No veo nada en recursos... ¿Ya no esta disponible?