Menyimpan model TensorFlow untuk AI Explanations

Halaman ini menjelaskan cara menyimpan model TensorFlow untuk digunakan dengan AI Explanations, baik Anda menggunakan TensorFlow 2.x maupun TensorFlow 1.15.

TensorFlow 2

Jika Anda menggunakan TensorFlow 2.x, gunakan tf.saved_model.save untuk menyimpan model Anda.

Opsi umum untuk mengoptimalkan model TensorFlow tersimpan adalah meminta pengguna memberikan tanda tangan. Anda dapat menentukan tanda tangan input saat menyimpan model. Jika Anda hanya memiliki satu tanda tangan input, AI Explanations akan otomatis menggunakan fungsi penyaluran default untuk permintaan penjelasan Anda, dengan mengikuti perilaku default tf.saved_model.save. Pelajari lebih lanjut cara menentukan tanda tangan penyaluran di TensorFlow.

Beberapa tanda tangan input

Jika model Anda memiliki lebih dari satu tanda tangan input, AI Explanations tidak dapat otomatis menentukan definisi tanda tangan mana yang akan digunakan saat mengambil prediksi dari model Anda. Oleh karena itu, Anda harus menentukan definisi tanda tangan mana yang ingin digunakan oleh Penjelasan AI. Saat Anda menyimpan model, tentukan tanda tangan fungsi default penyaluran Anda dalam kunci unik, xai-model:

tf.saved_model.save(m, model_dir, signatures={
    'serving_default': serving_fn,
    'xai_model': my_signature_default_fn # Required for AI Explanations
    })

Dalam hal ini, AI Explanations menggunakan tanda tangan fungsi model yang Anda berikan dengan kunci xai_model untuk berinteraksi dengan model dan menghasilkan penjelasan. Gunakan string yang sama persis dengan xai_model untuk kunci tersebut. Lihat ringkasan Definisi Tanda Tangan ini untuk latar belakang selengkapnya.

Fungsi pra-pemrosesan

Jika menggunakan fungsi pra-pemrosesan, Anda harus menentukan tanda tangan untuk fungsi prapemrosesan dan fungsi model saat menyimpan model. Gunakan kunci xai_preprocess untuk menentukan fungsi pra-pemrosesan Anda:

tf.saved_model.save(m, model_dir, signatures={
    'serving_default': serving_fn,
    'xai_preprocess': preprocess_fn, # Required for AI Explanations
    'xai_model': model_fn # Required for AI Explanations
    })

Dalam hal ini, AI Explanations menggunakan fungsi pra-pemrosesan dan fungsi model Anda untuk permintaan penjelasan. Pastikan output fungsi pra-pemrosesan Anda cocok dengan input yang diharapkan oleh fungsi model Anda.

Coba notebook contoh TensorFlow 2 lengkap:

TensorFlow 1.15

Jika Anda menggunakan TensorFlow 1.15, jangan gunakan tf.saved_model.save. Fungsi ini tidak didukung dengan AI Explanations saat menggunakan TensorFlow 1. Sebagai gantinya, gunakan tf.estimator.export_savedmodel bersama dengan tf.estimator.export.ServingInputReceiver yang sesuai

Model yang dibuat dengan Keras

Jika membangun dan melatih model di Keras, Anda harus mengonversi model menjadi Estimator TensorFlow, lalu mengekspornya ke SavedModel. Bagian ini berfokus pada penyimpanan model. Untuk contoh yang berfungsi penuh, lihat contoh notebook:

Setelah mem-build, mengompilasi, melatih, dan mengevaluasi model Keras, Anda harus melakukan hal berikut:

  • Mengonversi model Keras menjadi Estimator TensorFlow menggunakan tf.keras.estimator.model_to_estimator
  • Memberikan fungsi input inferensi menggunakan tf.estimator.export.build_raw_serving_input_receiver_fn
  • Mengekspor model sebagai SavedModel menggunakan tf.estimator.export_saved_model.
# Build, compile, train, and evaluate your Keras model
model = tf.keras.Sequential(...)
model.compile(...)
model.fit(...)
model.predict(...)

## Convert your Keras model to an Estimator
keras_estimator = tf.keras.estimator.model_to_estimator(keras_model=model, model_dir='export')

## Define a serving input function appropriate for your model
def serving_input_receiver_fn():
  ...
  return tf.estimator.export.ServingInputReceiver(...)

## Export the SavedModel to Cloud Storage using your serving input function
export_path = keras_estimator.export_saved_model(
    'gs://' + 'YOUR_BUCKET_NAME', serving_input_receiver_fn).decode('utf-8')

print("Model exported to: ", export_path)

Langkah selanjutnya