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