TensorFlow mẫu phân tích (TFMA) có thể xuất khẩu đồ thị đánh giá của một mô hình cho một đặc biệt SavedModel
gọi EvalSavedModel
. (Lưu ý rằng đồ thị đánh giá được sử dụng và không phải là đồ thị cho đào tạo hoặc suy luận.) Các 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 một cách phân phối trên một số lượng lớn các dữ liệu và người dùng định nghĩa lát.
Sửa đổi một mô hình hiện có
Để sử dụng một mô hình hiện với TFMA, lần đầu tiên thay đổi mô hình để xuất EvalSavedModel
. Này được thực hiện bằng cách thêm một cuộc gọi đến tfma.export.export_eval_savedmodel
và cũng 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à cũng tương tự như serving_input_receiver_fn
cho estimator.export_savedmodel
. Giống như serving_input_receiver_fn
, các eval_input_receiver_fn
chức năng định nghĩa một ví dụ giữ chỗ đầu vào, phân tích các tính năng từ ví dụ này, và trả về các tính năng phân tích cú pháp. Nó phân tích cú pháp và trả về nhãn.
Đoạn sau đây định nghĩa 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 cuốn từ điển. Hữu ích cho một mô hình nhiều đầu. - Các
eval_input_receiver_fn
chức năng sẽ, nhiều khả năng, được giống như bạnserving_input_receiver_fn
chức năng. 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 mộtage_category
tính năng mà chiaage
tính năng thành nhiều xô. 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 của mô hình của bạn khác nhau như thế nào trong các loại độ tuổi khác nhau.
Thêm số liệu xuất bài đăng
Số liệu bổ sung mà không được đưa vào mô hình có thể được sử dụng aded add_metrics_callbacks
. Để biết thêm chi tiết, xem trợ giúp Python cho run_model_analysis
.
Ví dụ từ đầu đến cuối
Thử rộng end-to-end dụ tính năng TensorFlow Biến đổi cho tính năng tiền xử lý, TensorFlow ước lượng cho việc đào tạo, phân tích mẫu TensorFlow và Jupyter để thẩm định; TensorFlow Phục vụ cho phục vụ.
Thêm chỉ số xuất bài đăng tùy chỉnh
Nếu bạn muốn thêm bài tùy chỉnh riêng xuất khẩu số liệu của bạn trong TFMA, xin vui lòng kiểm tra các tài liệu hướng dẫn ở đây .