پیکربندی یک مدل ذخیره شده Eval

تجزیه و تحلیل مدل 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 اضافه کنید، لطفاً اسناد را اینجا بررسی کنید.