Phân tích mô hình TensorFlow (TFMA) có thể xuất biểu đồ đánh giá của mô hình sang 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àmserving_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ăngage_category
để chia tính năngage
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 .