Creando nuestra primera red neuronal con python🐍

En este apartado crearemos una pequeña red neuronal que pueda convertir de grados Celsius a Fahrenheit, para ellos necesitamos de lo siguiente:

Librerias

  • TensorFlow
  • NumPy

Que es TensorFlow?

es una biblioteca de código abierto para aprendizaje automático a través de un rango de tareas, y desarrollado por Google para satisfacer sus necesidades de sistemas capaces de construir y entrenar redes neuronales para detectar y descifrar patrones y correlaciones, análogos al aprendizaje y razonamiento usados por los humanos.

Que es NumPy?

es una librería de Python especializada en el cálculo numérico y el análisis de datos, especialmente para un gran volumen de datos.

Lo primero que debemos hacer es importar estas librerías para poder crear nuestra red neuronal, para ello, lo hacemos de la siguiente manera.

import tensorflow as tf
import numpy as np

Lo siguiente que realizaremos es crear un array con las entradas de grados Celsius y otro array con los grados Fahrenheit.

celsius = np.array([-40, -10, 0, 8, 15, 22, 38], dtype=float)
fahrenheit = np.array([-40, 14, 32, 46, 59, 72, 100], dtype=float)

ahora, definimos la conexión entre las dos neuronas, haciendo uso de keras.

layer = tf.keras.layers.Dense(units=1, input_shape=[1])
modelo = tf.keras.Sequential([layer])

ahora, indicamos dos propiedades, el optimizador y el indicador de pérdida.

modelo.compile(
    optimizer = tf.keras.optimerzers.Adam(0.1),
    loss = 'means_squared_error'
)

Entrenando nuestro modelo...

print("Comenzando entrenamiento...")
historial = modelo.fit(celsius, fahrenheit, epochs=1000, verbose=False)
print("Modelo Entrenado!")

imprimiendo resultados de la red → función de pérdida.

import matplotlib.pyplot as plt
plt.xlabel("# Edad")
plt.ylabel("Magnitud de perdida")
plt.plot(historial.history["loss"])

resultados: resultados del entrenamiento de nuestra red ahora realizamos una predicción.

print("Hagamos una predicción")
resultado = modelo.predict([100.0])
print("El resultado es " + str(resultado) + " fahrenheit!")

El resultado es [[204.32977]] fahrenheit! Podemos hacerla mucho más precisa, pero por el momento, así queda nuestra primera red neuronal en Python.