קביעת תצורה של Eval Saved Model

TensorFlow Model Analysis (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 Transform לעיבוד מקדים של תכונות, TensorFlow Estimators להדרכה, ניתוח מודל TensorFlow ו-Jupyter להערכה, והגשה של TensorFlow להגשה.

הוספת מדד פוסט ייצוא מותאם אישית

אם ברצונך להוסיף מדד אישי משלך לאחר ייצוא ב-TFMA, בדוק את התיעוד כאן .