Ejecución de modelos de bosques de decisión de TensorFlow con TensorFlow.js

Estas instrucciones explican cómo entrenar un modelo TF-DF y ejecutarlo en la web usando TensorFlow.js.

Instrucciones detalladas

Entrena un modelo en TF-DF

Para probar este tutorial, primero necesita un modelo TF-DF. Puede usar su propio modelo o entrenar un modelo con el tutorial para principiantes .

Si simplemente desea entrenar rápidamente un modelo en Google Colab, puede usar el siguiente fragmento de código.

!pip install tensorflow_decision_forests -U -qq
import tensorflow as tf
import tensorflow_decision_forests as tfdf
import pandas as pd

# Download the dataset, load it into a pandas dataframe and convert it to TensorFlow format.
!wget -q https://storage.googleapis.com/download.tensorflow.org/data/palmer_penguins/penguins.csv -O /tmp/penguins.csv
dataset_df = pd.read_csv("/tmp/penguins.csv")
train_ds = tfdf.keras.pd_dataframe_to_tf_dataset(dataset_df, label="species")

# Create, train and save the model
model_1 = tfdf.keras.GradientBoostedTreesModel()
model_1.fit(train_ds)
model_1.save("/tmp/my_saved_model")

Convertir el modelo

Las instrucciones que siguen asumen que ha guardado su modelo TF-DF en la ruta /tmp/my_saved_model . Ejecute el siguiente fragmento de código para convertir el modelo a TensorFlow.js.

!pip install tensorflow tensorflow_decision_forests 'tensorflowjs>=4.4.0'

# Prepare and load the model with TensorFlow
import tensorflow as tf
import tensorflow_decision_forests as tfdf
import tensorflowjs as tfjs
from google.colab import files

# Load the model with Keras
model = tf.keras.models.load_model("/tmp/my_saved_model/")

# Convert the keras model to TensorFlow.js
tfjs.converters.tf_saved_model_conversion_v2.convert_keras_model_to_graph_model(model, "./tfjs_model")

# Download the converted TFJS model
!zip -r tfjs_model.zip tfjs_model/
files.download("tfjs_model.zip")

Cuando Google Colab termina de ejecutarse, descarga el modelo TFJS convertido como un archivo zip. Descomprima este archivo antes de usarlo en el siguiente paso.

Un modelo Tensorflow.js descomprimido consta de varios archivos. El modelo de ejemplo contiene lo siguiente:

  • activos.zip
  • grupo1-fragmento1de1.bin
  • modelo.json

Usa el modelo Tensorflow.js en la web

Utilice esta plantilla para cargar dependencias TFJS y ejecutar el modelo TFDF. Cambie la ruta del modelo a donde se sirve su modelo y modifique el tensor dado para ejecutar Async.

  <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@4.5.0/dist/tf.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-tfdf/dist/tf-tfdf.min.js"></script>
  <script>
    (async () =>{
      // Load the model.
      // Tensorflow.js currently needs the absolute path to the model including the full origin.
      const model = await tfdf.loadTFDFModel('https://path/to/unzipped/model/model.json');
      // Perform an inference
      const result = await model.executeAsync({
            "island": tf.tensor(["Torgersen"]),
            "bill_length_mm": tf.tensor([39.1]),
            "bill_depth_mm": tf.tensor([17.3]),
            "flipper_length_mm": tf.tensor([3.1]),
            "body_mass_g": tf.tensor([1000.0]),
            "sex": tf.tensor(["Female"]),
            "year": tf.tensor([2007], [1], 'int32'),
      });
      // The result is a 6-dimensional vector, the first half may be ignored
      result.print();
    })();
  </script>

¿Preguntas?

Consulte la documentación de TensorFlow Decision Forests y la documentación de TensorFlow.js .