تجزیه و تحلیل مدل TensorFlow (TFMA) می تواند نمودار ارزیابی یک مدل را به یک SavedModel
ویژه به نام EvalSavedModel
صادر کند. (توجه داشته باشید که نمودار ارزیابی استفاده می شود و نه نمودار برای آموزش یا استنباط.) EvalSavedModel
حاوی اطلاعات اضافی است که به TFMA اجازه می دهد همان معیارهای ارزیابی تعریف شده در مدل را به صورت توزیع شده بر روی مقدار زیادی داده و تعریف شده توسط کاربر محاسبه کند. برش ها
یک مدل موجود را اصلاح کنید
برای استفاده از یک مدل موجود با 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
باید تعریف شود و شبیه serving_input_receiver_fn
برای estimator.export_savedmodel
است. مانند 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_category
را معرفی می کنید که ویژگیage
را به چند سطل تقسیم می کند. سپس می توانید این ویژگی را در TFMA برش دهید تا به درک تفاوت عملکرد مدل شما در رده های سنی مختلف کمک کنید.
افزودن معیارهای صادرات پست
معیارهای دیگری که در مدل گنجانده نشده اند را می توان با استفاده از add_metrics_callbacks
اضافه کرد. برای جزئیات بیشتر، به راهنمای Python برای run_model_analysis
مراجعه کنید.
نمونه های سرتاسری
نمونه گسترده انتها به انتها شامل تبدیل TensorFlow برای پیش پردازش ویژگی، تخمینگر TensorFlow برای آموزش، تحلیل مدل TensorFlow و Jupyter برای ارزیابی، و سرویس TensorFlow برای ارائه را امتحان کنید.
افزودن متریک صادرات پست سفارشی
اگر میخواهید معیار صادرات پست سفارشی خود را در TFMA اضافه کنید، لطفاً اسناد را اینجا بررسی کنید.