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.