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, בדוק את התיעוד כאן .