Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

ExampleGen TFX Ardışık Düzen Bileşeni

ExampleGen TFX Pipeline bileşeni, verileri TFX işlem hatlarına aktarır. Diğer TFX bileşenleri tarafından okunacak Örnekler oluşturmak için harici dosyaları / hizmetleri kullanır. Ayrıca tutarlı ve yapılandırılabilir bölüm sağlar ve makine öğrenimi en iyi uygulaması için veri kümesini karıştırır.

  • TFRecord CSV, TFRecord , Avro, Parquet ve BigQuery gibi harici veri kaynaklarından gelen veriler.
  • tf.Example : tf.Example kayıtları, tf.SequenceExample kayıtları veya yük formatına bağlı olarak proto formatı.

ExampleGen ve Diğer Bileşenler

ExampleGen, SchemaGen , StatisticsGen ve Örnek Doğrulayıcı gibi TensorFlow Veri Doğrulama kitaplığını kullanan bileşenlere veri sağlar. Aynı zamanda veri sağlar Transform kullanımı kılan, Transform TensorFlow çıkarsama sırasında dağıtım hedeflere sonuçta kütüphane ve.

Veri Kaynakları ve Biçimleri

Şu anda standart bir TFX kurulumu, bu veri kaynakları ve biçimleri için tam ExampleGen bileşenlerini içermektedir:

Aşağıdaki veri kaynakları ve biçimleri için ExampleGen bileşenlerinin geliştirilmesini sağlayan özel yürüticiler de mevcuttur:

Özel çalıştırıcıların nasıl kullanılacağı ve geliştirileceği hakkında daha fazla bilgi için kaynak koddaki kullanım örneklerine ve bu tartışmaya bakın.

Ek olarak, bu veri kaynakları ve biçimleri özel bileşen örnekleri olarak mevcuttur:

Apache Beam tarafından desteklenen veri formatlarını besleme

Apache Beam, çok çeşitli veri kaynakları ve biçimlerinden veri almayı destekler ( aşağıya bakın ). Bu yetenekler, bazı mevcut ExampleGen bileşenlerinde gösterilen TFX için özel ExampleGen bileşenleri oluşturmak için kullanılabilir ( aşağıya bakın ).

ExampleGen Bileşeni nasıl kullanılır

Desteklenen (şu anda, CSV dosyaları ile TFRecord dosyaları veri kaynakları için tf.Example , tf.SequenceExample ve proto biçimi ve BigQuery sorgularının sonuçları) ExampleGen boru hattı bileşeni dağıtmak doğrudan kullanılan ve az özelleştirme gerektirir edilebilir. Örneğin:

from tfx.utils.dsl_utils import csv_input
from tfx.components.example_gen.csv_example_gen.component import CsvExampleGen

examples = csv_input(os.path.join(base_dir, 'data/simple'))
example_gen = CsvExampleGen(input=examples)

veya harici TFRecord ithalatı için aşağıdaki gibi tf.Example doğrudan:

from tfx.components.example_gen.import_example_gen.component import ImportExampleGen

example_gen = ImportExampleGen(input_base=path_to_tfrecord_dir)

Aralık, Sürüm ve Bölme

Span, eğitim örneklerinden oluşan bir gruptur. Verileriniz bir dosya sisteminde saklanıyorsa, her Span ayrı bir dizinde saklanabilir. Bir Span'ın semantiği TFX'e gömülmez; Bir Aralık, bir günlük veriye, bir saatlik veriye veya göreviniz için anlamlı olan başka herhangi bir gruplamaya karşılık gelebilir.

Her Aralık, birden çok veri Sürümünü tutabilir. Bir örnek vermek gerekirse, düşük kaliteli verileri temizlemek için bir Aralık'tan bazı örnekleri kaldırırsanız, bu, söz konusu Span'ın yeni bir Sürümüyle sonuçlanabilir. Varsayılan olarak, TFX bileşenleri bir Yayılma içindeki en son Sürümde çalışır.

Bir Aralık içindeki her Sürüm, birden çok Bölmeye daha da bölünebilir. Bir Span'ı bölmek için en yaygın kullanım durumu, onu eğitime ayırmak ve verileri değerlendirmektir.

Aralıklar ve Bölmeler

Özel giriş / çıkış ayrımı

ExampleGen irade çıkışı, set tren / eval bölünmüş oranını özelleştirmek için output_config ExampleGen bileşeni için. Örneğin:

from  tfx.proto import example_gen_pb2

# Input has a single split 'input_dir/*'.
# Output 2 splits: train:eval=3:1.
output = example_gen_pb2.Output(
             split_config=example_gen_pb2.SplitConfig(splits=[
                 example_gen_pb2.SplitConfig.Split(name='train', hash_buckets=3),
                 example_gen_pb2.SplitConfig.Split(name='eval', hash_buckets=1)
             ]))
examples = csv_input(input_dir)
example_gen = CsvExampleGen(input=examples, output_config=output)

Bu örnekte hash_buckets nasıl ayarlandığına dikkat edin.

Kümesi zaten yapılmış ayrık vardır bir giriş kaynağı için input_config ExampleGen bileşeni için:

from  tfx.proto import example_gen_pb2

# Input train split is 'input_dir/train/*', eval split is 'input_dir/eval/*'.
# Output splits are generated one-to-one mapping from input splits.
input = example_gen_pb2.Input(splits=[
                example_gen_pb2.Input.Split(name='train', pattern='train/*'),
                example_gen_pb2.Input.Split(name='eval', pattern='eval/*')
            ])
examples = csv_input(input_dir)
example_gen = CsvExampleGen(input=examples, input_config=input)

Dosya tabanlı örnek gen için (örn. CsvExampleGen ve ImportExampleGen) pattern , giriş temel yolu tarafından verilen kök dizini ile giriş dosyalarıyla eşleşen glob göreceli bir dosya modelidir. Sorguya dayalı örnek gen için (ör. BigQueryExampleGen, PrestoExampleGen), pattern bir SQL sorgusudur.

Varsayılan olarak, tüm girdi temel dizini tek bir girdi bölümü olarak kabul edilir ve tren ve değerlendirme çıktı bölmesi 2: 1 oranında oluşturulur.

ExampleGen'in giriş ve çıkış bölme yapılandırması için lütfen proto / example_gen.proto'ya bakın. Özel bölmeleri aşağı akışta kullanmak için aşağı akış bileşenleri kılavuzuna bakın.

Bölme Yöntemi

hash_buckets bölme yöntemini kullanırken, tüm kayıt yerine, örnekleri bölümlemek için bir özellik kullanılabilir. Bir özellik mevcutsa, ExampleGen bu özelliğin parmak izini bölüm anahtarı olarak kullanacaktır.

Bu özellik, örneklerin belirli özelliklerinde kararlı bir bölünme sağlamak için kullanılabilir: örneğin, bölüm özelliği adı olarak "user_id" seçilmişse bir kullanıcı her zaman aynı bölüme yerleştirilecektir.

Bir "özelliğin" ne anlama geldiğinin ve bir "özelliğin" belirtilen adla nasıl eşleştirileceğinin yorumu, ExampleGen uygulamasına ve örneklerin türüne bağlıdır.

Hazır ExampleGen uygulamaları için:

  • Tf.Example üretirse, "özellik" tf.Example.features.feature içindeki bir girdi anlamına gelir.
  • Tf.SequenceExample üretirse, bir "özellik" tf.SequenceExample.context.feature içindeki bir girdi anlamına gelir.
  • Yalnızca int64 ve bayt özellikleri desteklenir.

Aşağıdaki durumlarda, ExampleGen çalışma zamanı hataları atar:

  • Örnekte belirtilen özellik adı mevcut değildir.
  • Boş özellik: tf.train.Feature() .
  • Desteklenmeyen özellik türleri, ör. Kayan özellikler.

Çıkış için örneklerde bir özellik göre tren / eval bölünmüş, set output_config ExampleGen bileşeni için. Örneğin:

from  tfx.proto import example_gen_pb2

# Input has a single split 'input_dir/*'.
# Output 2 splits based on 'user_id' features: train:eval=3:1.
output = example_gen_pb2.Output(
             split_config=example_gen_pb2.SplitConfig(splits=[
                 example_gen_pb2.SplitConfig.Split(name='train', hash_buckets=3),
                 example_gen_pb2.SplitConfig.Split(name='eval', hash_buckets=1)
             ],
             partition_feature_name='user_id'))
examples = csv_input(input_dir)
example_gen = CsvExampleGen(input=examples, output_config=output)

Bu örnekte partition_feature_name öğesinin nasıl ayarlandığına dikkat edin.

Aralık

Aralık, giriş glob modelinde '{SPAN}' spesifikasyonu kullanılarak alınabilir:

  • Bu özellik, rakamlarla eşleşir ve verileri ilgili SPAN numaralarına eşler. Örneğin, 'data_ {SPAN} - *. Tfrecord', 'data_12-a.tfrecord', 'date_12-b.tfrecord' gibi dosyaları toplayacaktır.
  • İsteğe bağlı olarak, bu özellik, eşlendiğinde tamsayıların genişliğiyle belirtilebilir. Örneğin, 'data_ {SPAN: 2} .file', 'data_02.file' ve 'data_27.file' gibi dosyalarla eşleşir (sırasıyla Span-2 ve Span-27 için girişler olarak), ancak 'data_1 ile eşleşmez. dosya 'veya' data_123.file '.
  • SPAN özelliği eksik olduğunda, her zaman "0" aralığında olduğu varsayılır.
  • SPAN belirtilirse, ardışık düzen en son aralığı işler ve aralık numarasını meta verilerde depolar.

Örneğin, giriş verilerinin olduğunu varsayalım:

  • '/ tmp / span-1 / tren / veri'
  • '/ tmp / span-1 / eval / data'
  • '/ tmp / span-2 / tren / veri'
  • '/ tmp / span-2 / eval / data'

ve giriş yapılandırması aşağıda gösterildiği gibidir:

splits {
  name: 'train'
  pattern: 'span-{SPAN}/train/*'
}
splits {
  name: 'eval'
  pattern: 'span-{SPAN}/eval/*'
}

boru hattını tetiklerken şunları işleyecektir:

  • Tren ayrımı olarak '/ tmp / span-2 / train / data'
  • eval split olarak '/ tmp / span-2 / eval / data'

span numarası '2' olarak. Daha sonra '/ tmp / span-3 / ...' hazırsa, basitçe ardışık düzeni yeniden tetikleyin ve işlem için '3' aralığını alacaktır. Aşağıda, span spec'i kullanmak için kod örneği gösterilmektedir:

from  tfx.proto import example_gen_pb2

input = example_gen_pb2.Input(splits=[
                example_gen_pb2.Input.Split(name='train',
                                            pattern='span-{SPAN}/train/*'),
                example_gen_pb2.Input.Split(name='eval',
                                            pattern='span-{SPAN}/eval/*')
            ])
examples = csv_input('/tmp')
example_gen = CsvExampleGen(input=examples, input_config=input)

Belirli bir aralığın geri getirilmesi, aşağıda ayrıntıları verilen RangeConfig ile yapılabilir.

Tarih

Veri kaynağınız dosya sisteminde tarihe göre düzenlenmişse, TFX tarihleri ​​doğrudan sayıları kapsayacak şekilde eşlemeyi destekler. Tarihlerden aralıklara eşlemeyi temsil eden üç özellik vardır: {YYYY}, {MM} ve {DD}:

  • Herhangi bir belirtilmişse, giriş glob modelinde üç özellik birlikte bulunmalıdır:
  • Ya {SPAN} spesifikasyonu veya bu tarih spesifikasyonları grubu özel olarak belirlenebilir.
  • YYYY'den yıl, AA'dan ay ve DD'den ayın gününe sahip bir takvim tarihi hesaplanır, ardından aralık sayısı, unix döneminden beri geçen günlerin sayısı olarak hesaplanır (yani 1970-01-01). Örneğin, "log- {YYYY} {MM} {DD} .data" bir "log-19700101.data" dosyası ile eşleşir ve Span-0 için girdi olarak ve "log-20170101.data" Span-17167.
  • Bu tarih özellikleri kümesi belirtilirse, ardışık düzen en son tarihi işler ve ilgili aralık numarasını meta verilerde depolar.

Örneğin, takvim tarihine göre düzenlenmiş girdi verilerinin olduğunu varsayalım:

  • '/ tmp / 1970-01-02 / tren / veri'
  • '/ tmp / 1970-01-02 / eval / data'
  • '/ tmp / 1970-01-03 / tren / veri'
  • '/ tmp / 1970-01-03 / eval / data'

ve giriş yapılandırması aşağıda gösterildiği gibidir:

splits {
  name: 'train'
  pattern: '{YYYY}-{MM}-{DD}/train/*'
}
splits {
  name: 'eval'
  pattern: '{YYYY}-{MM}-{DD}/eval/*'
}

boru hattını tetiklerken şunları işleyecektir:

  • Tren ayrımı olarak '/ tmp / 1970-01-03 / tren / veri'
  • '/ tmp / 1970-01-03 / eval / data' eval bölünmüş olarak

span numarası '2' olarak. Daha sonra '/ tmp / 1970-01-04 / ...' hazırsa, ardışık düzeni yeniden tetikleyin ve işlem için '3' aralığını alacaktır. Aşağıda tarih spesifikasyonunun kullanılması için kod örneği gösterilmektedir:

from  tfx.proto import example_gen_pb2

input = example_gen_pb2.Input(splits=[
                example_gen_pb2.Input.Split(name='train',
                                            pattern='{YYYY}-{MM}-{DD}/train/*'),
                example_gen_pb2.Input.Split(name='eval',
                                            pattern='{YYYY}-{MM}-{DD}/eval/*')
            ])
examples = csv_input('/tmp')
example_gen = CsvExampleGen(input=examples, input_config=input)

Sürüm

Sürüm, giriş glob modelinde "{VERSION}" belirtimi kullanılarak alınabilir:

  • Bu özellik rakamlarla eşleşir ve verileri SPAN altındaki ilgili VERSION numaralarına eşler. Sürüm spesifikasyonunun Aralık veya Tarih spesifikasyonuyla birlikte kullanılabileceğini unutmayın.
  • Bu spesifikasyon, isteğe bağlı olarak, SPAN spesifikasyonuyla aynı şekilde genişlikle belirtilebilir. ör. "aralık- {SPAN} / sürüm- {SÜRÜM: 4} / veri- *".
  • VERSION belirtimi eksik olduğunda, sürüm Yok olarak ayarlanır.
  • Hem SPAN hem de VERSION belirtilmişse, ardışık düzen en son sürümü en son yayılma süresi için işler ve sürüm numarasını meta verilerde depolar.
  • VERSION belirtilir, ancak SPAN (veya tarih spesifikasyonu) belirtilmezse, bir hata atılır.

Örneğin, giriş verilerinin olduğunu varsayalım:

  • '/ tmp / span-1 / ver-1 / tren / veri'
  • '/ tmp / span-1 / ver-1 / eval / data'
  • '/ tmp / span-2 / ver-1 / tren / veri'
  • '/ tmp / span-2 / ver-1 / eval / data'
  • '/ tmp / span-2 / ver-2 / tren / veri'
  • '/ tmp / span-2 / ver-2 / eval / data'

ve giriş yapılandırması aşağıda gösterildiği gibidir:

splits {
  name: 'train'
  pattern: 'span-{SPAN}/ver-{VERSION}/train/*'
}
splits {
  name: 'eval'
  pattern: 'span-{SPAN}/ver-{VERSION}/eval/*'
}

boru hattını tetiklerken şunları işleyecektir:

  • Tren ayrımı olarak '/ tmp / span-2 / ver-2 / train / data'
  • eval bölünmüş olarak '/ tmp / span-2 / ver-2 / eval / data'

span numarası '2' ve sürüm numarası '2'. Daha sonra '/ tmp / span-2 / ver-3 / ...' hazırsa, ardışık düzeni yeniden tetikleyin ve işlem için '2' ve sürüm '3' aralığını alacaktır. Aşağıda, sürüm belirtiminin kullanılması için kod örneği gösterilmektedir:

from  tfx.proto import example_gen_pb2

input = example_gen_pb2.Input(splits=[
                example_gen_pb2.Input.Split(name='train',
                                            pattern='span-{SPAN}/ver-{VERSION}/train/*'),
                example_gen_pb2.Input.Split(name='eval',
                                            pattern='span-{SPAN}/ver-{VERSION}/eval/*')
            ])
examples = csv_input('/tmp')
example_gen = CsvExampleGen(input=examples, input_config=input)

Aralık Yapılandırması

TFX, farklı TFX varlıkları için aralıkları tanımlamak için kullanılan soyut bir yapılandırma olan range config kullanarak dosya tabanlı ExampleGen'de belirli bir aralığın alınmasını ve işlenmesini destekler. Belirli bir aralığı almak için, dosya tabanlı bir ExampleGen bileşeni için range_config ayarlayın. Örneğin, giriş verilerinin olduğunu varsayalım:

  • '/ tmp / span-01 / tren / veri'
  • '/ tmp / span-01 / eval / data'
  • '/ tmp / span-02 / tren / veri'
  • '/ tmp / span-02 / eval / veri'

Verileri özellikle '1' aralığı ile almak ve işlemek için, giriş yapılandırmasına ek olarak bir aralık yapılandırması belirtiyoruz. ExampleGen'in yalnızca tek açıklıklı statik aralıkları desteklediğini unutmayın (belirli ayrı aralıkların işlenmesini belirtmek için). Bu nedenle, StaticRange için start_span_number, end_span_number'a eşit olmalıdır. Sağlanan aralığı ve sıfır doldurma için aralık genişliği bilgilerini (sağlanmışsa) kullanarak, ExampleGen, sağlanan bölünmüş desenlerdeki SPAN spesifikasyonunu istenen aralık sayısıyla değiştirecektir. Aşağıda bir kullanım örneği gösterilmektedir:

from  tfx.proto import example_gen_pb2
from  tfx.proto import range_config_pb2

# In cases where files have zero-padding, the width modifier in SPAN spec is
# required so TFX can correctly substitute spec with zero-padded span number.
input = example_gen_pb2.Input(splits=[
                example_gen_pb2.Input.Split(name='train',
                                            pattern='span-{SPAN:2}/train/*'),
                example_gen_pb2.Input.Split(name='eval',
                                            pattern='span-{SPAN:2}/eval/*')
            ])
# Specify the span number to be processed here using StaticRange.
range = range_config_pb2.RangeConfig(
                static_range=range_config_pb2.StaticRange(
                        start_span_number=1, end_span_number=1)
            )

# After substitution, the train and eval split patterns will be
# 'input_dir/span-01/train/*' and 'input_dir/span-01/eval/*', respectively.
examples = csv_input(input_dir)
example_gen = CsvExampleGen(input=examples, input_config=input,
                            range_config=range)

Aralık yapılandırması, SPAN spesifikasyonu yerine tarih spesifikasyonu kullanılıyorsa, belirli tarihleri ​​işlemek için de kullanılabilir. Örneğin, takvim tarihine göre düzenlenmiş girdi verilerinin olduğunu varsayalım:

  • '/ tmp / 1970-01-02 / tren / veri'
  • '/ tmp / 1970-01-02 / eval / data'
  • '/ tmp / 1970-01-03 / tren / veri'
  • '/ tmp / 1970-01-03 / eval / data'

2 Ocak 1970'teki verileri özel olarak almak ve işlemek için aşağıdakileri yapıyoruz:

from  tfx.components.example_gen import utils
from  tfx.proto import example_gen_pb2
from  tfx.proto import range_config_pb2

input = example_gen_pb2.Input(splits=[
                example_gen_pb2.Input.Split(name='train',
                                            pattern='{YYYY}-{MM}-{DD}/train/*'),
                example_gen_pb2.Input.Split(name='eval',
                                            pattern='{YYYY}-{MM}-{DD}/eval/*')
            ])
# Specify date to be converted to span number to be processed using StaticRange.
span = utils.date_to_span_number(1970, 1, 2)
range = range_config_pb2.RangeConfig(
                static_range=range_config_pb2.StaticRange(
                        start_span_number=span, end_span_number=span)
            )

# After substitution, the train and eval split patterns will be
# 'input_dir/1970-01-02/train/*' and 'input_dir/1970-01-02/eval/*',
# respectively.
examples = csv_input(input_dir)
example_gen = CsvExampleGen(input=examples, input_config=input,
                            range_config=range)

Özel ÖrnekGen

Şu anda mevcut ExampleGen bileşenleri ihtiyaçlarınıza uymuyorsa, farklı veri kaynaklarından veya farklı veri formatlarında okumanızı sağlayacak özel bir ExampleGen oluşturabilirsiniz.

Dosya Tabanlı Örnek Gen

İlk olarak, BaseExampleGenExecutor'ı, tren / değerlendirme girdinizden TF örneklerine dönüştürme sağlayan özel bir Beam PTransform ile genişletin. Örneğin, CsvExampleGen yürütücü , bir giriş CSV bölümünden TF örneklerine dönüşüm sağlar.

Ardından, CsvExampleGen bileşeninde yapıldığı gibi yukarıdaki yürütücüyle bir bileşen oluşturun. Alternatif olarak, aşağıda gösterildiği gibi standart ExampleGen bileşenine özel bir uygulayıcı geçirin.

from tfx.components.base import executor_spec
from tfx.components.example_gen.component import FileBasedExampleGen
from tfx.components.example_gen.csv_example_gen import executor
from tfx.utils.dsl_utils import external_input

examples = external_input(os.path.join(base_dir, 'data/simple'))
example_gen = FileBasedExampleGen(
    input=examples,
    custom_executor_spec=executor_spec.ExecutorClassSpec(executor.Executor))

Şimdi, bu yöntemi kullanarak Avro ve Parquet dosyalarını okumayı da destekliyoruz.

Ek Veri Biçimleri

Apache Beam, bir dizi ek veri biçimini okumayı destekler . Beam I / O Dönüşümleri ile. Avro örneğine benzer bir desen kullanarak Işın I / O Dönüşümlerinden yararlanarak özel ExampleGen bileşenleri oluşturabilirsiniz.

  return (pipeline
          | 'ReadFromAvro' >> beam.io.ReadFromAvro(avro_pattern)
          | 'ToTFExample' >> beam.Map(utils.dict_to_example))

Bu yazının yazıldığı tarih itibariyle Beam Python SDK için şu anda desteklenen formatlar ve veri kaynakları şunları içerir:

  • Amazon S3
  • Apache Avro
  • Apache Hadoop
  • Apache Kafka
  • Apache Parke
  • Google Cloud BigQuery
  • Google Cloud BigTable
  • Google Cloud Datastore
  • Google Cloud Pub / Sub
  • Google Bulut Depolama (GCS)
  • MongoDB

En son liste için Beam belgelerine bakın.

Sorgu Tabanlı ÖrnekGen

İlk olarak, BaseExampleGenExecutor'ı harici veri kaynağından okuyan özel bir Beam PTransform ile genişletin. Ardından, QueryBasedExampleGen'i genişleterek basit bir bileşen oluşturun.

Bu, ek bağlantı konfigürasyonları gerektirebilir veya gerektirmeyebilir. Örneğin, BigQuery yürütücü , bağlantı yapılandırma ayrıntılarını özetleyen varsayılan bir beam.io bağlayıcısı kullanarak okur. Presto yürütücü , giriş olarak özel bir Beam PT dönüşümü ve özel bir bağlantı yapılandırma protokolü gerektirir.

Özel bir ExampleGen bileşeni için bir bağlantı yapılandırması gerekiyorsa, yeni bir protobuf oluşturun ve bunu artık isteğe bağlı bir yürütme parametresi olan custom_config aracılığıyla iletin. Aşağıda, yapılandırılmış bir bileşenin nasıl kullanılacağına dair bir örnek verilmiştir.

from tfx.examples.custom_components.presto_example_gen.proto import presto_config_pb2
from tfx.examples.custom_components.presto_example_gen.presto_component.component import PrestoExampleGen

presto_config = presto_config_pb2.PrestoConnConfig(host='localhost', port=8080)
example_gen = PrestoExampleGen(presto_config, query='SELECT * FROM chicago_taxi_trips')

ExampleGen Downstream Bileşenleri

Aşağı akış bileşenleri için özel bölünmüş yapılandırma desteklenir.

İstatistikler

Varsayılan davranış, tüm bölünmeler için istatistik oluşturmayı gerçekleştirmektir.

Herhangi bir bölünmeyi hariç tutmak için, StatisticsGen bileşeni için exclude_splits ayarlayın. Örneğin:

from tfx import components

...

# Exclude the 'eval' split.
statistics_gen = components.StatisticsGen(
             examples=example_gen.outputs['examples'],
             exclude_splits=['eval'])

SchemaGen

Varsayılan davranış, tüm bölmelere dayalı bir şema oluşturmaktır.

Herhangi bir exclude_splits hariç tutmak için, SchemaGen bileşeni için exclude_splits ayarlayın. Örneğin:

from tfx import components

...

# Exclude the 'eval' split.
schema_gen = components.SchemaGen(
             statistics=statistics_gen.outputs['statistics'],
             exclude_splits=['eval'])

ExampleValidator

Varsayılan davranış, bir şemaya göre girdi örneklerindeki tüm bölünmelerin istatistiklerini doğrulamaktır.

Herhangi bir exclude_splits hariç tutmak için, ExampleValidator bileşeni için exclude_splits ayarlayın. Örneğin:

from tfx import components

...

# Exclude the 'eval' split.
example_validator = components.ExampleValidator(
             statistics=statistics_gen.outputs['statistics'],
             schema=schema_gen.outputs['schema'],
             exclude_splits=['eval'])

Dönüştürme

Varsayılan davranış analiz etmek ve meta verileri 'eğitmek' ayrıştırmasından üretmek ve tüm bölmeleri dönüştürmektir.

splits_config analiz etmek ve bölmeleri dönüştürmek için, Dönüştür bileşeni için splits_config ayarlayın. Örneğin:

from tfx import components
from  tfx.proto import transform_pb2

...

# Analyze the 'train' split and transform all splits.
transform = components.Transform(
      examples=example_gen.outputs['examples'],
      schema=schema_gen.outputs['schema'],
      module_file=_taxi_module_file,
      splits_config=transform_pb2.SplitsConfig(analyze=['train'],
                                               transform=['train', 'eval']))

Eğitmen ve Tuner

Varsayılan davranış, 'tren' ayrımında eğitimdir ve 'değerlendirme' ayrımında değerlendirilir.

Tren bölmelerini belirtmek ve bölmeleri değerlendirmek için Trainer bileşeni için train_args ve eval_args train_args ayarlayın. Örneğin:

from tfx import components
from  tfx.proto import trainer_pb2

...

# Train on the 'train' split and evaluate on the 'eval' split.
Trainer = components.Trainer(
      module_file=_taxi_module_file,
      examples=transform.outputs['transformed_examples'],
      schema=schema_gen.outputs['schema'],
      transform_graph=transform.outputs['transform_graph'],
      train_args=trainer_pb2.TrainArgs(splits=['train'], num_steps=10000),
      eval_args=trainer_pb2.EvalArgs(splits=['eval'], num_steps=5000))

Değerlendirici

Varsayılan davranış, 'değerlendirme' bölümünde hesaplanan ölçümler sağlamaktır.

Özel bölmelerle ilgili bir değerlendirme istatistiği hesaplamak için Değerlendirici bileşeni için example_splits ayarlayın. Örneğin:

from tfx import components
from  tfx.proto import evaluator_pb2

...

# Compute metrics on the 'eval1' split and the 'eval2' split.
Trainer = components.Evaluator(
      examples=example_gen.outputs['examples'],
      model=trainer.outputs['model'],
      example_splits=['eval1', 'eval2'])