"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Uniendo el aprendizaje automático con TensorFlow: de Python a JavaScript

Uniendo el aprendizaje automático con TensorFlow: de Python a JavaScript

Publicado el 2024-11-01
Navegar:351

Bridging Machine Learning with TensorFlow: From Python to JavaScript

Dar vida al aprendizaje automático con TensorFlow

Como desarrollador de JavaScript, sumergirse en el aprendizaje automático no es tan desalentador como podría parecer. Si bien es técnicamente posible manejar todo con los paquetes de Node.js, el ecosistema Python ML es demasiado rico y está bien establecido para ignorarlo. Además, es fantástico trabajar con Python. Por lo tanto, tiene sentido usar Python para el trabajo pesado en el backend. Una vez que tenga su modelo listo, puede exportarlo a un formato compatible con el front-end y cargarlo en el cliente para ejecutar predicciones.

Generando un modelo

En esta publicación, crearemos un modelo para predecir la popularidad de un artista en función de su número de seguidores en Twitter.

El primer paso es tener en nuestras manos un conjunto de datos. Para este proyecto, usaremos un archivo artistas.csv similar a este:

twitter_followers,popularity,handle
111024636,94,justinbieber
107920365,91,rihanna
106599902,89,katyperry
95307659,97,taylorswift13
66325495,87,selenagomez
66325135,71,selenagomez
60943147,83,jtimberlake
54815915,82,britneyspears
53569307,85,shakira

Como puedes ver, aquí hay dos valores clave: twitter_followers y popularidad. Esto nos prepara muy bien para un modelo de secuencia, donde x será twitter_followers e y será popularidad.

Modelo de secuencia es una de las opciones más sencillas para construir un modelo. Si bien la elección depende en última instancia del caso de uso específico, lo mantendré simple y me apegaré a este enfoque por ahora.

Construyendo el backend

Cuando estás creando un modelo, hay algunas tareas básicas que deberás realizar:

  • Limpiar o normalizar los datos
  • Dividir los datos en Entrenamiento (80%) y Pruebas (20%)
  • Elija un modelo junto con configuraciones como optimizador y función de pérdida
  • Entrenar el modelo (adaptar)
  • Evaluar el modelo
  • Guardar el modelo

El siguiente código le brinda una buena descripción general de estas tareas, aunque no es la imagen completa. Puedes consultar el código completo en Github.

Python: introducción a TensorFlow

def get_model(x, y):
    x_normalized = layers.Normalization(
        axis=None,
    )
    x_normalized.adapt(np.array(x))

    model = tensorflow.keras.Sequential([x_normalized, layers.Dense(units=1)])

    model.compile(
        optimizer=tensorflow.keras.optimizers.Adam(learning_rate=0.1),
        loss="mean_squared_error",
    )

    model.fit(
        x,
        y,
        epochs=2,
        verbose=0,
        validation_split=0.2,
    )

    return model

def main:
  train_features, test_features, train_labels, test_labels = split_data(dataset)

  model = get_model(
      train_features["twitter_followers"],
      train_labels,
  )

  test_loss = model.evaluate(
      test_features["twitter_followers"], test_labels, verbose=2
  )

  model.export("./saved_model")

Como puedes ver, el código Python es bastante sencillo. Hay una función principal que se encarga de dividir los datos, obtener el modelo, evaluarlo y finalmente guardarlo.

En pocas palabras, estos son los pasos esenciales para crear un modelo. Pero seamos realistas: construir un modelo que realmente funcione es tanto un arte como una ciencia. Mi objetivo aquí es simplemente mostrar lo fácil que puede ser comenzar con Python. Sin embargo, se necesitan muchas cosas para crear un modelo que funcione bien, como tener un conjunto de datos sólido, limpiar y normalizar sus datos, elegir el modelo y la configuración correctos y tener la potencia informática para entrenarlo. ¡Todas estas tareas requieren una gran inversión de tiempo y esfuerzo!

Consumir el modelo en el frontend

Ahora que tenemos nuestro modelo entrenado y guardado, es hora de incorporarlo al frontend. En este paso es donde cargaremos el modelo en un formato compatible con la web, para que podamos ejecutar predicciones directamente en el navegador. Ya sea que esté usando TensorFlow.js u otra biblioteca, la integración del aprendizaje automático en su aplicación web abre un mundo de posibilidades. ¡Veamos cómo hacerlo!

TensorFlow ofrece un paquete npm llamado tensorflowjs_converter que ayuda a convertir modelos guardados en JSON y binario.

tensorflowjs_converter --input_format=tf_saved_model model/saved_model out/public
  • tf_saved_model: Este es el formato utilizado para guardar el modelo.
  • model/saved_model: este es el directorio donde se guardó el modelo cuando se ejecutó el código Python.
  • out/public: este es el directorio de salida donde se guardan los archivos compatibles con el frontend. La estructura de carpetas se verá así:
ls -la out/public

group1-shard1of1.bin
model.json

Esta configuración facilita el acceso a los archivos necesarios para su aplicación web.

Javascript: uso de TensorFlowJS

Puedes consultar el código completo en Github.

const model = await tensorflow.loadGraphModel("model.json");

const getPopularity = (followers) => {
  const followers = 1_000;
  const normalized = followers;
  const x = tensorflow.tensor(normalized).reshape([-1, 1]);

  const result = model.predict(x);
  const values = result.arraySync();

  const y = values[0][0].toFixed(2) * 100;
  const popularity = y;

  return popularity;
};

Como se mencionó anteriormente, este modelo tiene como objetivo "predecir la popularidad" en función del número de seguidores de Twitter. Si bien puede parecer un ejemplo simple, demuestra de manera efectiva cómo generar un modelo en el backend y consumirlo en el frontend.

Observe cómo getPopularity procesa un poco la entrada, pero la línea clave es model.predict(x), que utiliza el modelo para predecir un valor (y) basado en la entrada x.

Dirígete a la página de demostración y prueba algunos identificadores de Twitter. Es una forma divertida de ver cómo el modelo predice la popularidad según el número de seguidores.

Conclusión

TensorFlow es una biblioteca increíble que proporciona herramientas para el desarrollo tanto de backend como de frontend. Cualquier desarrollador de JavaScript puede sumergirse en la creación de un modelo usando Python o un lenguaje similar y luego importar fácilmente ese modelo a la interfaz para ejecutar predicciones.

Si bien el aprendizaje automático es un campo vasto que requiere mucho conocimiento, herramientas como TensorFlow ayudan a cerrar la brecha entre los desarrolladores de software y de aprendizaje automático. ¡Hace que el viaje sea mucho más sencillo para aquellos que buscan incorporar ML en sus proyectos!

Declaración de liberación Este artículo se reproduce en: https://dev.to/garciadiazjaime/bridging-machine-learning-with-tensorflow-from-python-to-javascript-25hp?1 Si hay alguna infracción, comuníquese con [email protected] para borrarlo
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3