Auf dieser Seite wird erläutert, wie Sie ein TensorFlow-Modell für AI Explanations speichern, unabhängig davon, ob Sie TensorFlow 2.x oder TensorFlow 1.15 verwenden.
TensorFlow 2
Wenn Sie mit TensorFlow 2.x arbeiten, verwenden Sie tf.saved_model.save
zum Speichern für das Modell.
Eine gängige Option zur Optimierung gespeicherter TensorFlow-Modelle ist die Bereitstellung von Signaturen. Sie können beim Speichern Ihres Modells Eingabesignaturen angeben.
Wenn Sie nur eine Eingabesignatur haben, verwendet AI Explanations automatisch die Standardbereitstellungsfunktion für Ihre Erläuterungsanfragen. Beachten Sie dabei das Standardverhalten von tf.saved_model.save
. Weitere Informationen finden Sie im Abschnitt zum Festlegen von Bereitstellungssignaturen in TensorFlow.
Mehrere Eingabesignaturen
Wenn Ihr Modell mehr als eine Eingabesignatur hat, kann AI Explanations nicht automatisch bestimmen, welche Signaturdefinition beim Abrufen einer Vorhersage aus Ihrem Modell verwendet werden soll. Daher müssen Sie angeben, welche Signaturdefinition Sie verwenden möchten, um AI Explanations zu verwenden. Wenn Sie das Modell speichern, geben Sie die Signatur Ihrer Bereitstellungsstandardfunktion in einem eindeutigen Schlüssel (xai-model
) an:
tf.saved_model.save(m, model_dir, signatures={
'serving_default': serving_fn,
'xai_model': my_signature_default_fn # Required for AI Explanations
})
In diesem Fall verwendet AI Explanations die von Ihnen mit dem Schlüssel xai_model
bereitgestellte Modellfunktionssignatur, um mit Ihrem Modell zu interagieren und Erklärungen zu generieren. Verwenden Sie für den Schlüssel exakt den String xai_model
. Weitere Informationen finden Sie in dieser Übersicht zum Thema "Signature".
Vorverarbeitungsfunktionen
Wenn Sie eine Vorverarbeitungsfunktion verwenden, müssen Sie die Signaturen für
der Vorverarbeitungsfunktion
und der Modellfunktion. Verwenden Sie den Schlüssel xai_preprocess
, um die Vorverarbeitungsfunktion anzugeben:
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
})
In diesem Fall nutzt AI Explanations die Vorverarbeitungsfunktion und die Modellfunktion für Ihre Erläuterungsanfragen. Die Ausgabe der Vorverarbeitungsfunktion muss der Eingabe entsprechen, die Ihre Modellfunktion erwartet.
Testen Sie die vollständigen TensorFlow 2 Beispiel-Notebooks:
TensorFlow 1.15
Wenn Sie TensorFlow 1.15 nutzen, verwenden Sie nicht tf.saved_model.save
.
Diese Funktion wird bei der Verwendung von TensorFlow 1 nicht mit AI Explanations unterstützt. Verwenden Sie stattdessen tf.estimator.export_savedmodel
in Verbindung mit einem geeigneten
tf.estimator.export.ServingInputReceiver
Mit Keras erstellte Modelle
Wenn Sie Ihr Modell in Keras erstellen und trainieren, müssen Sie es in einen TensorFlow Estimator konvertieren und anschließend in ein SavedModel exportieren. In diesem Abschnitt geht es hauptsächlich um das Speichern eines Modells. Ein vollständig funktionierendes Beispiel finden Sie in den Beispiel-Notebooks.
Nachdem Sie Ihr Keras-Modell erstellt, kompiliert, trainiert und bewertet haben, müssen Sie Folgendes tun:
- Das Keras-Modell mithilfe von
tf.keras.estimator.model_to_estimator
in einen TensorFlow Estimator konvertieren - Eine Bereitstellungseingabefunktion mithilfe von
tf.estimator.export.build_raw_serving_input_receiver_fn
bereitstellen - Das Modell mithilfe von
tf.estimator.export_saved_model
als SavedModel exportieren.
# 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)
Nächste Schritte
- Erfahren Sie mehr darüber, wie Sie das Explainable AI SDK verwenden.
- Verwenden Sie zum Visualisieren Ihrer Erläuterungen das What-If-Tool. Weitere Informationen finden Sie in den Beispiel-Notebooks.