Định cấu hình mô hình đã lưu đánh giá

Phân tích mô hình TensorFlow (TFMA) có thể xuất biểu đồ đánh giá của mô SavedModel đặc biệt có tên EvalSavedModel . (Lưu ý rằng biểu đồ đánh giá được sử dụng chứ không phải biểu đồ để đào tạo hoặc suy luận.) EvalSavedModel chứa thông tin bổ sung cho phép TFMA tính toán các số liệu đánh giá tương tự được xác định trong mô hình theo cách phân tán trên một lượng lớn dữ liệu và do người dùng xác định. lát.

Sửa đổi mô hình hiện có

Để sử dụng mô hình hiện có với TFMA, trước tiên hãy sửa đổi mô hình để xuất EvalSavedModel . Điều này được thực hiện bằng cách thêm lệnh gọi tới tfma.export.export_eval_savedmodel và tương tự như estimator.export_savedmodel . Ví dụ:

# 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 phải được xác định và tương tự như serving_input_receiver_fn cho estimator.export_savedmodel . Giống như serving_input_receiver_fn , hàm eval_input_receiver_fn xác định một ví dụ giữ chỗ đầu vào, phân tích cú pháp các tính năng từ ví dụ và trả về các tính năng được phân tích cú pháp. Nó phân tích và trả về nhãn.

Đoạn mã sau xác định một ví dụ 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'])

Trong ví dụ này bạn có thể thấy rằng:

  • labels cũng có thể là một từ điển. Hữu ích cho một mô hình nhiều đầu.
  • Hàm eval_input_receiver_fn rất có thể sẽ giống với hàm serving_input_receiver_fn của bạn. Tuy nhiên, trong một số trường hợp, bạn có thể muốn xác định các tính năng bổ sung để cắt. Ví dụ: bạn giới thiệu tính năng age_category để chia tính năng age thành nhiều nhóm. Sau đó, bạn có thể phân tích tính năng này trong TFMA để giúp hiểu hiệu suất mô hình của bạn khác nhau như thế nào giữa các loại độ tuổi khác nhau.

Thêm số liệu sau xuất

Bạn có thể thêm các số liệu bổ sung không có trong mô hình bằng cách sử dụng add_metrics_callbacks . Để biết thêm chi tiết, hãy xem trợ giúp Python cho run_model_analysis .

Ví dụ từ đầu đến cuối

Hãy thử ví dụ toàn diện bao gồm Biến đổi TensorFlow để xử lý trước tính năng, Công cụ ước tính TensorFlow để đào tạo, Phân tích mô hình TensorFlow và Jupyter để đánh giá và Cung cấp TensorFlow để phân phát.

Thêm số liệu xuất bài đăng tùy chỉnh

Nếu bạn muốn thêm số liệu xuất bài đăng tùy chỉnh của riêng mình trong TFMA, vui lòng xem tài liệu tại đây .