Experimento 1

CERRANDO EL CÍRCULO...

... crear la red neuronal "a mano", entrenarlo con mis datos, poder exportar el modelo a un archivo/s independiente para luego usarlo en otro sitio

Conversión de grados celsius a fahrenheit

Desliza para cambiar el valor de grados celsius
0 grados celsius son 32 grados fahrenheit

Es una red neuronal simple, creada con código python en Colab utilizando bibliotecas de Tensorflow y la api de Keras

Por lo que he podido analizar, creo que valdría para cualquier dato que sea una función lineal o nube de datos que se pueda estudiar con regresión lineal

He probado con una función parabólica inventada y no predice bien, aunque el set de datos que he usado para el entrenamiento solo son 5 pares de datos:

celsius = np.array([-1, -3.46, 2.75, 1.46, 0.42], dtype=float)

fahrenheit = np.array([0, 6.05, 14.03, 6.03, 2.02], dtype=float)

El modelo se programa y se entrena, luego se exporta a un fichero .h5 y se convierte, en este caso a .bin compatible con Tensorflow.js para poder usarlo en web con javascript y Tensorflow.js

En mi caso son dos ficheros bastante pequeños: un .bin de 88 bytes y un .json de 2.45 kBytes

Detalles de las pruebas con dos modelos de red neuronal:


Una sola capa con una neurona:
capa=tf.keras.layers.Dense(units=1, input_shape=[1])
modelo=tf.keras.Sequential([capa])

Otra con dos capas intermedias adicionales con tres neuronas cada una:
oculta1 = tf.keras.layers.Dense(units=3, input_shape=[1])
oculta2 = tf.keras.layers.Dense(units=3)
salida = tf.keras.layers.Dense(units=1)
modelo = tf.keras.Sequential([oculta1, oculta2, salida])

Nota: La capa de entrada se autoregistra con el parámetro "input_shape"