En esta página, se explica cómo guardar un modelo de TensorFlow para usarlo con AI Explanations, ya sea que uses TensorFlow 2.x o TensorFlow 1.15.
TensorFlow 2
Si estás trabajando con TensorFlow 2.x, usa tf.saved_model.save
para guardar tu modelo.
Una opción común para optimizar los modelos guardados de TensorFlow es que los usuarios proporcionen firmas. Puedes especificar firmas de entrada cuando guardas el modelo.
Si solo tienes una firma de entrada, AI Explanations usa de forma automática la función de entrega predeterminada para las solicitudes de explicaciones y sigue el comportamiento predeterminado de tf.saved_model.save
. Obtén más información para
especificar firmas de entrega en TensorFlow.
Varias firmas de entrada
Si tu modelo tiene más de una firma de entrada, AI Explanations no puede determinar automáticamente qué definición de firma usar cuando se recupera una predicción de tu modelo. Por lo tanto, debes especificar qué definición de firma deseas que use AI Explanations. Cuando guardes tu modelo, especifica la firma de tu función predeterminada de entrega en una clave única, xai-model
:
tf.saved_model.save(m, model_dir, signatures={
'serving_default': serving_fn,
'xai_model': my_signature_default_fn # Required for AI Explanations
})
En este caso, AI Explanations usa la firma de la función de modelo que proporcionaste con la clave xai_model
para interactuar con tu modelo y generar explicaciones. Usa la string exacta xai_model
para la clave. Consulta esta descripción general de definiciones de firmas para obtener más información.
Funciones de procesamiento previo
Si usas una función de procesamiento previo, debes especificar las firmas
la función de procesamiento previo y la función del modelo cuando guardas el modelo. Usa la clave xai_preprocess
para especificar tu función de procesamiento previo:
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
})
En este caso, Explicaciones de IA usa la función de procesamiento previo y la función de modelo para tus solicitudes de explicación. Asegúrate de que el resultado de tu función de procesamiento previo coincida con la entrada que espera la función del modelo.
Prueba los notebooks de ejemplo completos de TensorFlow 2:
TensorFlow 1.15
Si usas TensorFlow 1.15, no uses tf.saved_model.save
.
Esta función no es compatible con AI Explanations cuando se usa TensorFlow 1. En su lugar, usa tf.estimator.export_savedmodel
junto con un elemento
tf.estimator.export.ServingInputReceiver
Modelos compilados con Keras
Si compilas y entrenas el modelo en Keras, debes convertirlo en un Estimador de TensorFlow y, luego, exportarlo a un modelo guardado. En esta sección, nos enfocamos en cómo guardar un modelo. Para ver un ejemplo completo, consulta los notebooks de ejemplo.
Después de compilar, compilar, entrenar y evaluar el modelo de Keras, debes hacer lo siguiente:
- Convertir el modelo de Keras en un Estimador de TensorFlow mediante
tf.keras.estimator.model_to_estimator
- Proporcionar una función de entrada de entrega mediante
tf.estimator.export.build_raw_serving_input_receiver_fn
- Exportar el modelo como modelo guardado mediante
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)
¿Qué sigue?
- Aprende a usar el SDK de Explainable AI.
- Para ver las explicaciones, puedes usar la Herramienta What-If. Consulta los notebooks de ejemplo para obtener más información.