SIG TFX-Addons 커뮤니티에 가입하고 TFX를 더욱 향상시키는 데 도움을 주세요! SIG TFX 애드온 가입

평가 저장 모델 구성

TensorFlow 모델 분석 (TFMA)는 특별한에 모델의 평가 그래프를 내보낼 수 있습니다 SavedModel 라는 EvalSavedModel . (교육이나 추론을위한 그래프가 아니라 평가 그래프가 사용된다는 점에 유의하십시오.) EvalSavedModel 에는 EvalSavedModel 가 많은 양의 데이터 및 사용자 정의에 대해 분산 방식으로 모델에 정의 된 동일한 평가 메트릭을 계산할 수있는 추가 정보가 포함되어 있습니다. 조각.

기존 모델 수정

TFMA와 함께 기존 모델을 사용하려면 먼저 모델을 수정하여 EvalSavedModel 을 내보내십시오. 이에 대한 호출을 추가하여 수행 tfma.export.export_eval_savedmodel 와 유사하다 estimator.export_savedmodel . 예를 들면 :

# Define, train and export your estimator as usual
estimator = tf.estimator.DNNClassifier(...)
estimator.train(...)
estimator.export_savedmodel(...)

# Also export the EvalSavedModel
tfma.export.export_eval_savedmodel(
  estimator=estimator, export_dir_base=export_dir,
  eval_input_receiver_fn=eval_input_receiver_fn)

eval_input_receiver_fn 을 정의해야하며 estimator.export_savedmodelserving_input_receiver_fn 과 유사합니다. 마찬가지로 serving_input_receiver_fn 상기 eval_input_receiver_fn 기능은, 입력 위치 지정자 예를 정의하는 실시 예에서의 기능을 파싱하고, 파싱 기능을 리턴한다. 레이블을 구문 분석하고 반환합니다.

다음 스 니펫은 eval_input_receiver_fn 예제를 정의합니다.

country = tf.feature_column.categorical_column_with_hash('country', 100)
language = tf.feature_column.categorical_column_with_hash('language', 100)
age = tf.feature_column.numeric_column('age')
label = tf.feature_column.numeric_column('label')

def eval_input_receiver_fn():
  serialized_tf_example = tf.compat.v1.placeholder(
      dtype=tf.string, shape=[None], name='input_example_placeholder')

  # This *must* be a dictionary containing a single key 'examples', which
  # points to the input placeholder.
  receiver_tensors = {'examples': serialized_tf_example}

  feature_spec =  tf.feature_column.make_parse_example_spec(
      [country, language, age, label])
  features = tf.io.parse_example(serialized_tf_example, feature_spec)

  return tfma.export.EvalInputReceiver(
    features=features,
    receiver_tensors=receiver_tensors,
    labels=features['label'])

이 예에서 다음을 확인할 수 있습니다.

  • labels 은 사전이 될 수도 있습니다. 머리가 여러 개인 모델에 유용합니다.
  • eval_input_receiver_fn 기능은 대부분, 당신과 동일합니다 serving_input_receiver_fn 기능. 그러나 경우에 따라 슬라이싱을위한 추가 기능을 정의 할 수 있습니다. 예를 들어 age 기능을 여러 버킷으로 나누는 age_category 기능을 도입합니다. 그런 다음 TFMA에서이 기능을 조각화하여 모델의 성능이 연령 범주에 따라 어떻게 다른지 이해하는 데 도움이 될 수 있습니다.

내보내기 후 지표 추가

모델에 포함되지 않은 추가 메트릭은 add_metrics_callbacks를 사용하여 add_metrics_callbacks 수 있습니다. 자세한 내용은 run_model_analysis 대한 Python 도움말을 참조 run_model_analysis .

종단 간 예제

기능 사전 처리를위한 TensorFlow Transform , 학습을위한 TensorFlow Estimators , 평가를위한 TensorFlow Model Analysis 및 Jupyter, 제공을 위한 TensorFlow Serving 을 특징으로하는 광범위한 엔드 투 엔드 예제 를 사용해보세요.

사용자 지정 포스트 내보내기 지표 추가

TFMA에서 사용자 지정 포스트 내보내기 메트릭을 추가하려면 여기 에서 설명서를 확인 하십시오 .