يقوم مكون خط أنابيب Trainer TFX بتدريب نموذج TensorFlow.
المدرب و TensorFlow
يستخدم المدرب على نطاق واسع واجهة برمجة تطبيقات Python TensorFlow لنماذج التدريب.
عنصر
يأخذ المدرب :
- tf.الأمثلة المستخدمة للتدريب والتقييم.
- قدم المستخدم ملف الوحدة النمطية الذي يحدد منطق المدرب.
- تعريف Protobuf لوسائط القطار ووسائط التقييم.
- (اختياري) مخطط بيانات تم إنشاؤه بواسطة مكون خط أنابيب SchemaGen وتم تعديله اختياريًا بواسطة المطور.
- (اختياري) الرسم البياني للتحويل الناتج عن مكون التحويل الأولي.
- (اختياري) النماذج المدربة مسبقًا المستخدمة في سيناريوهات مثل Warmstart.
- (اختياري) المعلمات الفائقة، والتي سيتم تمريرها إلى وظيفة وحدة المستخدم. يمكن العثور على تفاصيل التكامل مع Tuner هنا .
يصدر المدرب: نموذجًا واحدًا على الأقل للاستدلال/العرض (عادةً في SavedModelFormat) واختياريًا نموذجًا آخر للتقييم (عادةً EvalSavedModel).
نحن نقدم الدعم لتنسيقات النماذج البديلة مثل TFLite من خلال مكتبة إعادة كتابة النماذج . راجع الرابط الخاص بمكتبة إعادة كتابة النماذج للحصول على أمثلة حول كيفية تحويل كل من نموذجي Estimator وKeras.
مدرب عام
يمكّن المدرب العام المطورين من استخدام أي واجهة برمجة تطبيقات لنموذج TensorFlow مع مكون المدرب. بالإضافة إلى أدوات تقدير TensorFlow، يمكن للمطورين استخدام نماذج Keras أو حلقات التدريب المخصصة. لمزيد من التفاصيل، يرجى الاطلاع على RFC للمدرب العام .
تكوين مكون المدرب
سيبدو رمز DSL النموذجي لخط الأنابيب للمدرب العام كما يلي:
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))
يستدعي المدرب وحدة التدريب المحددة في المعلمة 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
.
لاحظ أنه إذا لم يتم استخدام مكون التحويل في المسار، فسيأخذ المدرب الأمثلة من 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 .