مساعدة في حماية الحاجز المرجاني العظيم مع TensorFlow على Kaggle تاريخ التحدي

مكون خط أنابيب TFX المدرب

يقوم مكون خط أنابيب Trainer TFX بتدريب نموذج TensorFlow.

المدرب و TensorFlow

يستفيد المدرب بشكل مكثف من Python TensorFlow API لنماذج التدريب.

مكون

يأخذ المدرب:

  • tf أمثلة مستخدمة للتدريب والتقييم.
  • قدم المستخدم ملف وحدة نمطية يحدد منطق المدرب.
  • تعريف Protobuf لـ Train args و EVAL args.
  • (اختياري) مخطط بيانات تم إنشاؤه بواسطة مكون خط أنابيب SchemaGen وتم تعديله اختياريًا بواسطة المطور.
  • (اختياري) رسم بياني للتحويل ينتج عن مكون تحويل علوي.
  • (اختياري) نماذج مدربة مسبقًا تستخدم لسيناريوهات مثل Warmstart.
  • (اختياري) المعلمات الفائقة ، والتي سيتم تمريرها إلى وظيفة وحدة المستخدم. يمكن العثور على تفاصيل التكامل مع Tuner هنا .

يصدر المدرب: نموذج واحد على الأقل للاستدلال / العرض (عادةً في SavedModelFormat) ونموذج آخر اختياريًا للتقييم (عادةً نموذج EvalSavedModel).

نحن نقدم الدعم لتنسيقات النماذج البديلة مثل TFLite من خلال مكتبة إعادة كتابة النموذج . انظر الرابط إلى Model Rewriting Library للحصول على أمثلة حول كيفية تحويل كل من طرازات Estimator و Keras.

مدرب عام

يتيح المدرب العام للمطورين استخدام أي نموذج TensorFlow API مع مكون المدرب. بالإضافة إلى TensorFlow Estimators ، يمكن للمطورين استخدام نماذج 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 .