Esecuzione di modelli TensorFlow Decision Forests con TensorFlow.js

Queste istruzioni spiegano come addestrare un modello TF-DF ed eseguirlo sul Web utilizzando TensorFlow.js.

Istruzioni dettagliate

Addestra un modello in TF-DF

Per provare questo tutorial, devi prima avere un modello TF-DF. Puoi utilizzare il tuo modello o addestrare un modello con il tutorial per principianti .

Se desideri semplicemente addestrare rapidamente un modello in Google Colab, puoi utilizzare il seguente snippet di codice.

!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 and train the model
model_1 = tfdf.keras.GradientBoostedTreesModel()
model_1.fit(train_ds)

Converti il ​​modello

Le istruzioni successive presuppongono che tu abbia salvato il tuo modello TF-DF nel percorso /tmp/my_saved_model . Esegui il seguente snippet per convertire il modello in TensorFlow.js.

!pip install tensorflow tensorflow_decision_forests 'tensorflowjs>=4.4.0'
!pip install tf_keras

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

# Save the model in the SavedModel format
tf.saved_model.save(model_1, "/tmp/my_saved_model")

# Convert the SavedModel to TensorFlow.js and save as a zip file
tfjs.converters.tf_saved_model_conversion_v2.convert_tf_saved_model("/tmp/my_saved_model", "./tfjs_model")

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

Al termine dell'esecuzione, Google Colab scarica il modello TFJS convertito come file zip. Decomprimi questo file prima di utilizzarlo nel passaggio successivo.

Un modello Tensorflow.js decompresso è costituito da una serie di file. Il modello di esempio contiene quanto segue:

  • risorse.zip
  • gruppo1-shard1of1.bin
  • modello.json

Utilizza il modello Tensorflow.js sul Web

Utilizza questo modello per caricare le dipendenze TFJS ed eseguire il modello TFDF. Modifica il percorso del modello in cui viene servito il tuo modello e modifica il tensore fornito per eseguireAsync.

  <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>

Domande?

Consulta la documentazione di TensorFlow Decision Forests e la documentazione di TensorFlow.js .