Menyimpan model TensorFlow untuk Penjelasan AI

Halaman ini menjelaskan cara menyimpan model TensorFlow untuk digunakan dengan Penjelasan AI, 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 dengan meminta pengguna untuk 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 inferensi default untuk permintaan penjelasan Anda, mengikuti perilaku default tf.saved_model.save. Pelajari lebih lanjut cara menentukan tanda tangan inferensi di TensorFlow.

Beberapa tanda tangan input

Jika model Anda memiliki lebih dari satu tanda tangan input, Penjelasan AI tidak dapat otomatis menentukan definisi tanda tangan yang akan digunakan saat mengambil prediksi dari model Anda. Oleh karena itu, Anda harus menentukan definisi tanda tangan yang ingin digunakan Penjelasan AI. Saat menyimpan model, tentukan tanda tangan fungsi default inferensi 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 Anda dan membuat penjelasan. Gunakan string yang sama persis dengan xai_model untuk kunci tersebut. Lihat ringkasan Signature Defs ini untuk mengetahui latar belakang selengkapnya.

Fungsi prapemrosesan

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

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 akan 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 Penjelasan AI 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 kerja lengkap, lihat notebook contoh:

Setelah membangun, 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