הגדרת דגם Eval Saved

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 כדי לעזור להבין כיצד הביצועים של הדגם שלך שונים בין קטגוריות גיל שונות.

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

ערכים נוספים שאינם כלולים במודל ניתן aded באמצעות add_metrics_callbacks . לפרטים נוספים, עיין בעזרת פייתון run_model_analysis .

דוגמאות מקצה לקצה

נסה את נרחב למשל מקצה לקצה הכולל TensorFlow Transform עבור עיבוד מקדים תכונה, אומדי TensorFlow לאימונים, ניתוח דגם TensorFlow ו Jupyter להערכה, ואת TensorFlow הגשה להגשה.

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

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