רכיב הצינור של Trainer TFX מאמן מודל TensorFlow.
מאמן ו- TensorFlow
Trainer עושה שימוש נרחב ב-Python TensorFlow API עבור מודלים לאימון.
רְכִיב
המאמן לוקח:
- tf.דוגמאות המשמשות לאימון והערכה.
- קובץ מודול שסופק על ידי המשתמש המגדיר את הלוגיקה של המאמן.
- הגדרת פרוטובוף של ארג'ים רכבת וארג'ים eval.
- (אופציונלי) סכימת נתונים שנוצרה על ידי רכיב SchemaGen צינור ושונתה באופן אופציונלי על ידי המפתח.
- (אופציונלי) גרף טרנספורמציה המופק על ידי רכיב טרנספורמציה במעלה הזרם.
- (אופציונלי) מודלים מאומנים מראש המשמשים לתרחישים כגון התנעה חמה.
- (אופציונלי) היפרפרמטרים, שיועברו לפונקציית מודול המשתמש. פרטים על האינטגרציה עם Tuner ניתן למצוא כאן .
מאמן פולט: לפחות דגם אחד להסקת מסקנות/הגשה (בדרך כלל ב-SavedModelFormat) ואופציונלי מודל אחר ל-eval (בדרך כלל EvalSavedModel).
אנו מספקים תמיכה בפורמטים חלופיים של מודלים כגון TFLite דרך ספריית שכתוב המודלים . עיין בקישור לספריית שכתוב המודלים לדוגמאות כיצד להמיר מודלים של Estimator ו-Keras.
מאמן גנרי
מאמן גנרי מאפשר למפתחים להשתמש בכל API של מודל TensorFlow עם רכיב ה-Trainer. בנוסף לאומדני TensorFlow, מפתחים יכולים להשתמש במודלים של Keras או בלולאות אימון מותאמות אישית. לפרטים, עיין ב- RFC למאמן גנרי .
הגדרת רכיב המאמן
קוד DSL אופייני לצינור עבור ה-Trainer הגנרי ייראה כך:
from tfx.components import Trainer
...
trainer = Trainer(
module_file=module_file,
examples=transform.outputs['transformed_examples'],
transform_graph=transform.outputs['transform_graph'],
train_args=trainer_pb2.TrainArgs(num_steps=10000),
eval_args=trainer_pb2.EvalArgs(num_steps=5000))
Trainer מפעיל מודול אימון, אשר מצוין בפרמטר module_file
. במקום trainer_fn
, יש צורך ב- run_fn
בקובץ המודול אם ה- GenericExecutor
מצוין ב- custom_executor_spec
. ה- trainer_fn
היה אחראי ליצירת המודל. בנוסף לכך, run_fn
גם צריך לטפל בחלק האימון ולהוציא את המודל המאומן למיקום הרצוי שניתן על ידי FnArgs :
from tfx.components.trainer.fn_args_utils import FnArgs
def run_fn(fn_args: FnArgs) -> None:
"""Build the TF model and train it."""
model = _build_keras_model()
model.fit(...)
# Save model to fn_args.serving_model_dir.
model.save(fn_args.serving_model_dir, ...)
הנה קובץ מודול לדוגמה עם run_fn
.
שימו לב שאם לא נעשה שימוש ברכיב Transform בצנרת, המאמן ייקח ישירות את הדוגמאות מ-ExampleGen:
trainer = Trainer(
module_file=module_file,
examples=example_gen.outputs['examples'],
schema=infer_schema.outputs['schema'],
train_args=trainer_pb2.TrainArgs(num_steps=10000),
eval_args=trainer_pb2.EvalArgs(num_steps=5000))
פרטים נוספים זמינים בהפניה של Trainer API .