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
- Pelajari cara menggunakan Explainable AI SDK.
- Untuk memvisualisasikan penjelasan, Anda dapat menggunakan Alat What-If. Lihat contoh notebook untuk mempelajari lebih lanjut.