Importante
Este es un meme elaborado en el que pongo mucho esfuerzo. Así que por favor, nadie me demanda.
ShamboFlow es una API de código abierto para crear modelos de aprendizaje automático. Solo está disponible en Python.
ShamboFlow es una caída súper rápida en ReplacEmnet para TensorFlow (leer no agrega nada, ni siquiera una mejora del rendimiento). Se construye desde cero (leer, usar Numpy) y viene con soporte de GPU CUDA fuera de la caja. Contaré la historia al final de este archivo sobre cómo surgió esto.
En una nota seria, siempre quise implementar una red neuronal usando solo bibliotecas Numpy y no adicionales y esto me dio una excusa para hacerlo. Y así lo hice. Hice esto en una semana. Aprendió muchas cosas en el proceso y fue una experiencia estresante y divertida. Esta biblioteca depende de Numpy como se indica, pero también usa Cupy para agregar soporte de GPU. Otras dos dependencias son TQDM para la barra de progreso y colorama para textos coloridos. Probablemente trabajaré más en esto, ya que ya he hecho un esfuerzo.
Instale usando el paquete PIP.
$ pip install shamboflow Para actualizar shamboFlow a la última versión, agregue el indicador --upgrade al comando anterior
Un pequeño programa de ejemplo que muestra cómo crear una ANN simple con topología 3-2-1 y entrenarla con datos para realizar predicciones.
import numpy as np
# Dataset
x_data = np . array ([[ 1 , 0 , 1 ]])
y_data = np . array ([[ 1 ]])
# Parameters
learning_rate = 0.9
train_epochs = 20
# Import the library
import shamboflow as sf
# Create a model
model = sf . models . Sequential ()
# Add layers
model . add ( sf . layers . Dense ( 3 ))
model . add ( sf . layers . Dense ( 2 , activation = 'sigmoid' ))
model . add ( sf . layers . Dense ( 1 , activation = 'sigmoid' ))
# Compile the model
model . compile ( learning_rate = learning_rate , loss = 'mean_squared_error' , verbose = True )
# Callbacks
checkpoint = sf . callbacks . ModelCheckpoint ( monitor = 'loss' , save_best_only = True , verbose = True )
# Train the model with the dataset
model . fit (
x_data ,
y_data ,
epochs = train_epochs ,
callbacks = [ checkpoint ]
)
# Save the trained model to disk
model . save ( 'model.meow' ) import numpy as np
import shamboflow as sf
model = sf . models . load_model ( "./model.meow" )
a = np . array ([[ 1 , 0 , 1 ]])
res = model . predict ( a )
print ( res )Su historia de cuento.
La semana pasada tuvimos una clase en redes neuronales en la universidad. Al final de la clase, nuestro profesor nos dijo que implementáramos la red dada en Python. Ahora, anteriormente nos había dicho que no usáramos ninguna biblioteca para realizar nuestras tareas, ya que eso solo arruinaría el propósito de aprender algoritmos. Entonces, me emocioné de implementar una red neuronal usando Just Python. Luego nos dijo que podemos usar bibliotecas para hacer la red. Y estaba un poco desanimado. Mi amigo me dijo en broma que "no, tienes que hacerlo". Y dije que si lo termino dentro de una semana, ¿lo usarás en la tarea? Mis amigos estuvieron de acuerdo.
Entonces, aquí está. Mi biblioteca. Voy a hacer que usen esto para las tareas.