Trainer TFX Pipeline Bileşeni

Trainer TFX işlem hattı bileşeni bir TensorFlow modelini eğitir.

Eğitmen ve TensorFlow

Trainer, eğitim modelleri için Python TensorFlow API'sinden kapsamlı bir şekilde yararlanır.

Bileşen

Eğitmen şunları alır:

  • tf.Eğitim ve değerlendirme için kullanılan örnekler.
  • Eğitmen mantığını tanımlayan, kullanıcı tarafından sağlanan bir modül dosyası.
  • Train argümanlarının ve değerlendirme argümanlarının protobuf tanımı.
  • (İsteğe bağlı) SchemaGen işlem hattı bileşeni tarafından oluşturulan ve isteğe bağlı olarak geliştirici tarafından değiştirilen bir veri şeması.
  • Yukarı akışlı bir Transform bileşeni tarafından üretilen (İsteğe bağlı) dönüşüm grafiği.
  • Sıcak başlatma gibi senaryolar için kullanılan (İsteğe bağlı) önceden eğitilmiş modeller.
  • Kullanıcı modülü işlevine aktarılacak (İsteğe bağlı) hiperparametreler. Tuner ile entegrasyonun detaylarına buradan ulaşabilirsiniz.

Trainer şunları yayınlar: Çıkarım/sunum için en az bir model (genellikle SavedModelFormat'ta) ve isteğe bağlı olarak değerlendirme için başka bir model (tipik olarak bir EvalSavedModel).

Model Yeniden Yazma Kitaplığı aracılığıyla TFLite gibi alternatif model formatları için destek sağlıyoruz. Hem Tahminci hem de Keras modellerinin nasıl dönüştürüleceğine ilişkin örnekler için Model Yeniden Yazma Kitaplığı bağlantısına bakın.

Genel Eğitmen

Genel eğitmen, geliştiricilerin Trainer bileşeniyle herhangi bir TensorFlow modeli API'sini kullanmasını sağlar. TensorFlow Tahmincilerine ek olarak geliştiriciler Keras modellerini veya özel eğitim döngülerini kullanabilir. Ayrıntılar için lütfen genel eğiticiye yönelik RFC'ye bakın.

Trainer Bileşenini Yapılandırma

Genel Trainer için tipik ardışık düzen DSL kodu şöyle görünür:

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 parametresinde belirtilen bir eğitim modülünü çağırır. custom_executor_spec GenericExecutor belirtilmişse, modül dosyasında trainer_fn yerine run_fn gereklidir. Modelin oluşturulmasından trainer_fn sorumluydu. Buna ek olarak, run_fn eğitim kısmını da ele alması ve eğitilen modeli FnArgs tarafından verilen istenen konuma çıkarması gerekir:

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, ...)

İşte run_fn içeren örnek bir modül dosyası .

İşlem hattında Transform bileşeni kullanılmıyorsa Eğitmenin örnekleri doğrudan exampleGen'den alacağını unutmayın:

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))

Daha fazla ayrıntıyı Trainer API referansında bulabilirsiniz.