Değerlendirici TFX İşlem Hattı Bileşeni

Evaluator TFX ardışık düzen bileşeni, modelinizin verilerinizin alt kümelerinde nasıl performans gösterdiğini anlamanıza yardımcı olmak için modelleriniz için eğitim sonuçları üzerinde derin analiz gerçekleştirir. Değerlendirici ayrıca, dışa aktarılan modellerinizi doğrulamanıza yardımcı olur ve üretime gönderilmek için "yeterince iyi" olduklarından emin olur.

Doğrulama etkinleştirildiğinde, Değerlendirici, temele göre "yeterince iyi" olup olmadıklarını belirlemek için yeni modelleri bir temelle (şu anda sunulan model gibi) karşılaştırır. Bunu, her iki modeli de bir değerlendirme veri setinde değerlendirerek ve performanslarını metriklerde (örneğin AUC, kayıp) hesaplayarak yapar. Yeni modelin ölçümlerinizle belirten (iyiliği olarak işaretlendi) temel modeliyle (örn AUC düşürmek değildir), model "mübarek" bir göreli geliştirici tarafından belirlenen kriterleri karşılaması durumunda İtici , üretime modeli itmek Tamam olduğunu.

  • tüketir:
    • An eval bölünmüş ExampleGen
    • A'dan modeli eğitimli Trainer
    • Daha önce kutsanmış bir model (eğer doğrulama yapılacaksa)
  • yayar:

Değerlendirici ve TensorFlow Model Analizi

Değerlendirici yararlanır TensorFlow modeli analizi , analiz için kütüphane bu durum da, kullanım sırasında , Apache Işın ölçeklenebilir işleme.

Değerlendirici Bileşenini Kullanma

Bir Evaluator işlem hattı bileşeninin dağıtımı genellikle çok kolaydır ve işin çoğu Evaluator TFX bileşeni tarafından yapıldığından çok az özelleştirme gerektirir.

Değerlendiriciyi kurmak için aşağıdaki bilgiler gereklidir:

Doğrulama dahil edilecekse, aşağıdaki ek bilgilere ihtiyaç vardır:

Etkinleştirildiğinde, tanımlanan tüm metriklere ve dilimlere karşı doğrulama gerçekleştirilir.

Tipik kod şöyle görünür:

import tensorflow_model_analysis as tfma
...

# For TFMA evaluation

eval_config = tfma.EvalConfig(
    model_specs=[
        # This assumes a serving model with signature 'serving_default'. If
        # using estimator based EvalSavedModel, add signature_name='eval' and
        # remove the label_key. Note, if using a TFLite model, then you must set
        # model_type='tf_lite'.
        tfma.ModelSpec(label_key='<label_key>')
    ],
    metrics_specs=[
        tfma.MetricsSpec(
            # The metrics added here are in addition to those saved with the
            # model (assuming either a keras model or EvalSavedModel is used).
            # Any metrics added into the saved model (for example using
            # model.compile(..., metrics=[...]), etc) will be computed
            # automatically.
            metrics=[
                tfma.MetricConfig(class_name='ExampleCount'),
                tfma.MetricConfig(
                    class_name='BinaryAccuracy',
                    threshold=tfma.MetricThreshold(
                        value_threshold=tfma.GenericValueThreshold(
                            lower_bound={'value': 0.5}),
                        change_threshold=tfma.GenericChangeThreshold(
                            direction=tfma.MetricDirection.HIGHER_IS_BETTER,
                            absolute={'value': -1e-10})))
            ]
        )
    ],
    slicing_specs=[
        # An empty slice spec means the overall slice, i.e. the whole dataset.
        tfma.SlicingSpec(),
        # Data can be sliced along a feature column. In this case, data is
        # sliced along feature column trip_start_hour.
        tfma.SlicingSpec(feature_keys=['trip_start_hour'])
    ])

# The following component is experimental and may change in the future. This is
# required to specify the latest blessed model will be used as the baseline.
model_resolver = Resolver(
      strategy_class=dsl.experimental.LatestBlessedModelStrategy,
      model=Channel(type=Model),
      model_blessing=Channel(type=ModelBlessing)
).with_id('latest_blessed_model_resolver')

model_analyzer = Evaluator(
      examples=examples_gen.outputs['examples'],
      model=trainer.outputs['model'],
      baseline_model=model_resolver.outputs['model'],
      # Change threshold will be ignored if there is no baseline (first run).
      eval_config=eval_config)

Değerlendirici, bir üreten EvalResult (ve isteğe bağlı olarak bir ValidationResult doğrulama kullanılması halinde) kullanılarak yüklenebilir TFMA . Aşağıda sonuçların bir Jupyter not defterine nasıl yükleneceğine dair bir örnek verilmiştir:

import tensorflow_model_analysis as tfma

output_path = evaluator.outputs['evaluation'].get()[0].uri

# Load the evaluation results.
eval_result = tfma.load_eval_result(output_path)

# Visualize the metrics and plots using tfma.view.render_slicing_metrics,
# tfma.view.render_plot, etc.
tfma.view.render_slicing_metrics(tfma_result)
...

# Load the validation results
validation_result = tfma.load_validation_result(output_path)
if not validation_result.validation_ok:
  ...

Daha fazla detay mevcuttur Değerlendirici API başvurusu .