Nesta página, explicamos como salvar um modelo do TensorFlow para uso com a AI Explanations, independentemente de você usar o TensorFlow 2.x ou o TensorFlow 1.15.
TensorFlow 2
Se você estiver trabalhando com o TensorFlow 2.x, use tf.saved_model.save
para salvar
seu modelo.
Uma opção comum para otimizar modelos salvos do TensorFlow é oferecer
assinaturas. É possível especificar assinaturas de entrada ao salvar seu modelo.
Se você tiver apenas uma assinatura de entrada, o AI Explanations usará automaticamente a
função de exibição padrão para suas solicitações de explicação, seguindo o comportamento
padrão de tf.saved_model.save
. Saiba mais sobre
como especificar assinaturas de exibição no TensorFlow.
Várias assinaturas de entrada
Se o modelo tiver mais de uma assinatura de entrada, o AI Explanations não conseguirá determinar automaticamente qual definição de assinatura usar ao recuperar uma previsão do seu modelo. Portanto, é preciso especificar qual definição de assinatura você quer que o AI Explanations use. Quando salvar o modelo, especifique a assinatura da função padrão de veiculação em uma chave exclusiva, xai-model
:
tf.saved_model.save(m, model_dir, signatures={
'serving_default': serving_fn,
'xai_model': my_signature_default_fn # Required for AI Explanations
})
Nesse caso, a AI Explanations usa a assinatura da função de modelo que você forneceu com a chave
xai_model
para interagir com seu modelo e gerar explicações. Use a string exata xai_model
para a chave. Consulte esta visão geral dos padrões de assinatura para ver mais informações.
Funções de pré-processamento
Se você usar uma função de pré-processamento, será necessário especificar as assinaturas da
função de pré-processamento e da função de modelo ao salvar o modelo. Use
a chave xai_preprocess
para especificar a função de pré-processamento:
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
})
Nesse caso, o AI Explanations usa a função de pré-processamento e a função de modelo para as solicitações de explicação. Verifique se o resultado da função de pré-processamento corresponde à entrada que a função do modelo espera.
Teste os notebooks completos do TensorFlow 2:
TensorFlow 1.15
Se você estiver usando o TensorFlow 1.15, não use o tf.saved_model.save
.
Essa função não recebe suporte do AI Explanations ao usar o TensorFlow 1. Em vez disso, use tf.estimator.export_savedmodel
com uma tf.estimator.export.ServingInputReceiver
apropriada.
Modelos criados com o Keras
Se você criar e treinar seu modelo no Keras, será necessário convertê-lo em um Estimator do TensorFlow e, em seguida, exportá-lo para um SavedModel. Nesta seção, nos concentramos em salvar um modelo. Para um exemplo completo de trabalho, consulte os notebooks de exemplo.
- Notebook de exemplo tabular para o TensorFlow 1.15
- Exemplo de notebook de imagem para o TensorFlow 1.15
Depois de criar, compilar, treinar e avaliar o modelo do Keras, faça o seguinte:
- Converta o modelo Keras em um Estimator do TensorFlow usando
tf.keras.estimator.model_to_estimator
. - Forneça uma função de entrada de exibição usando
tf.estimator.export.build_raw_serving_input_receiver_fn
. - Exporte o modelo como SavedModel, usando
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)
A seguir
- Saiba como usar o SDK de Explainable AI.
- Para visualizar suas explicações, use a ferramenta What-If. Consulte os notebooks de exemplo para saber mais.