Red neuronal completamente conectada (I)

Vamos a ver un pequeño ejemplo de como crear una red neuronal fully connected. Para ello vamos a ir comentado un cuaderno de Jupyter que estará disponible en nuestro Github.

Lo primero que vamos a hacer es instalar un par de librerías que es posible que no tengamos instaladas y que nos van a venir bien para ver que es lo que estamos haciendo. Al estar dentro del un notebook estamos usando el magic ! previo al pip.

!pip install graphviz
!pip install pydotplus
#red neuronal densa totalmente conectada
import tensorflow as tf
from tensorflow.keras.utils import plot_model

Vamos a descargar unos de los conjuntos de datos clásicos que podemos descargar con keras.

#descarga el conjunto mnist
mnist = tf.keras.datasets.mnist

Con el método dir podemos inspeccionar los atributos de los objetos en python.

#metodo load data de dataset
dir(mnist) 

El método load_data nos permite cargar en los datos y separar los datos en entrenamiento y test

#separa datos de entrenamiento y test
(x_train, y_train), (x_test, y_test) = mnist.load_data()
#los 60.000 elemento de 28x28
x_train.shape

Si miramos los datos de entrenamiento podemos ver que tenemos 60000 instancias de 28×28. Cada instancia de entrenamiento es una imagen de 28 x 28 pixel que representa un digito manuscrito.

Para que la redes neuronales funcionen bien los datos de nuestras instancias deben estar normalizados. Cada pixel de la imagen tiene un valor entre 0-255 vamos a dividir sus valores entre 255 para tener los valores normalizados entre 0 y 1.

#normaliza los datos entre 0 y 1 y lo convierte a flotante
x_train, x_test = x_train / 255.0, x_test / 255.0
x_train[0] #podemos inspeccionar una de las instancias

En la próxima entrada veremos como generar un modelo de tipo secuencial en keras y como realizar el entrenamiento.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.