TensorFlow.js를 사용하여 TensorFlow Decision Forests 모델 실행

이 지침에서는 TF-DF 모델을 훈련하고 TensorFlow.js를 사용하여 웹에서 실행하는 방법을 설명합니다.

자세한 지침

TF-DF에서 모델 학습

이 튜토리얼을 시도하려면 먼저 TF-DF 모델이 필요합니다. 자신의 모델을 사용하거나 초보자 튜토리얼을 통해 모델을 훈련할 수 있습니다.

단순히 Google Colab에서 모델을 빠르게 학습시키려는 경우 다음 코드 스니펫을 사용할 수 있습니다.

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

모델 변환

앞으로의 지침에서는 TF-DF 모델을 /tmp/my_saved_model 경로에 저장했다고 가정합니다. 다음 코드 조각을 실행하여 모델을 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")

Google Colab 실행이 완료되면 변환된 TFJS 모델을 zip 파일로 다운로드합니다. 다음 단계에서 사용하기 전에 이 파일의 압축을 풀어주세요.

압축이 풀린 Tensorflow.js 모델은 여러 파일로 구성됩니다. 예제 모델에는 다음이 포함되어 있습니다.

  • 자산.zip
  • group1-shard1of1.bin
  • 모델.json

웹에서 Tensorflow.js 모델 사용

이 템플릿을 사용하여 TFJS 종속성을 로드하고 TFDF 모델을 실행하세요. 모델이 제공되는 위치로 모델 경로를 변경하고,executeAsync에 제공된 텐서를 수정하세요.

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

질문?

TensorFlow Decision Forests 문서TensorFlow.js 문서를 확인하세요.