이 페이지에서는 TensorFlow 2.x 또는 TensorFlow 1.15 사용 여부에 관계없이 AI Explanations에서 사용할 TensorFlow 모델을 저장하는 방법을 설명합니다.
TensorFlow 2
TensorFlow 2.x로 작업하는 경우 tf.saved_model.save
를 사용하여 모델을 저장합니다.
저장된 TensorFlow 모델을 최적화하는 일반적인 옵션 중 하나는 사용자가 서명을 제공하도록 하는 것입니다. 모델을 저장할 때 입력 서명을 지정할 수 있습니다.
입력 서명이 하나만 있으면 AI Explanations가 tf.saved_model.save
의 기본 동작에 따라 설명 요청에 대해 기본 제공 기능을 자동으로 사용합니다. TensorFlow에서 제공 서명 지정에 대해 자세히 알아보세요.
여러 입력 서명
모델에 입력 서명이 2개 이상 있으면 AI Explanations가 모델에서 예측을 검색할 때 사용할 서명 정의를 자동으로 결정할 수 없습니다. 따라서 AI Explanations가 사용할 서명 정의를 지정해야 합니다. 모델을 저장할 때 고유 키 xai-model
로 제공 기본 함수의 서명을 지정합니다.
tf.saved_model.save(m, model_dir, signatures={
'serving_default': serving_fn,
'xai_model': my_signature_default_fn # Required for AI Explanations
})
이 경우 AI Explanations는 xai_model
키로 제공된 모델 함수 서명을 사용하여 모델과 상호작용하고 설명을 생성합니다. 키에 정확한 문자열 xai_model
를 사용합니다. 자세한 배경 정보를 보려면 서명 정의에 대한 이 개요를 참조하세요.
사전 처리 함수
사전 처리 함수를 사용하는 경우 모델을 저장할 때 사전 처리 함수 및 모델 함수의 서명도 지정해야 합니다. xai_preprocess
키를 사용하여 사전 처리 함수를 지정합니다.
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
})
이 경우 AI Explanations는 설명 요청에 사전 처리 함수와 모델 함수를 사용합니다. 사전 처리 함수의 출력이 모델 함수의 예상 입력과 일치하는지 확인합니다.
전체 TensorFlow 2 예시 메모장을 사용해 보세요.
TensorFlow 1.15
TensorFlow 1.15를 사용하는 경우 tf.saved_model.save
를 사용하지 마세요.
이 함수는 TensorFlow 1을 사용할 때 AI Explanations에 지원되지 않습니다. 대신 적절한 tf.estimator.export.ServingInputReceiver
와 함께 tf.estimator.export_savedmodel
을 사용하세요.
Keras로 빌드된 모델
Keras에서 모델을 빌드하고 학습시키려면 모델을 TensorFlow Estimator로 변환하고 저장된 모델로 내보내야 합니다. 이 섹션에서는 모델 저장에 중점을 둡니다. 전체 작업 예시를 보려면 예시 메모장을 참조하세요.
Keras 모델을 빌드하고, 컴파일하고, 학습시킨 후 다음을 수행해야 합니다.
tf.keras.estimator.model_to_estimator
를 사용하여 Keras 모델을 TensorFlow Estimator로 변환합니다.tf.estimator.export.build_raw_serving_input_receiver_fn
을 사용하여 서빙 입력 함수를 제공합니다.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)
다음 단계
- Explainable AI SDK를 사용하는 방법을 알아봅니다.
- What-If 도구를 사용하여 설명을 시각화할 수 있습니다. 자세한 내용은 예시 메모장을 참조하세요.