ExampleGen TFX Pipeline bileşeni, verileri TFX ardışık düzenlerine alı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 en iyi ML uygulaması için veri kümesini karıştırır.
- Tüketim: CSV,
TFRecord
, Avro, Parquet ve BigQuery gibi harici veri kaynaklarından gelen veriler. - Yayılanlar: yük biçimine bağlı olarak
tf.Example
kayıtları,tf.SequenceExample
kayıtları veya proto biçimi.
ÖrnekGen ve Diğer Bileşenler
ExampleGen, SchemaGen , StatisticsGen ve Example Validator gibi TensorFlow Veri Doğrulama kitaplığını kullanan bileşenlere veri sağlar. Ayrıca, TensorFlow Transform kitaplığından yararlanan Transform öğesine ve sonuç olarak çıkarım sırasında dağıtım hedeflerine veri sağlar.
Veri Kaynakları ve Formatları
Şu anda standart bir TFX kurulumu, bu veri kaynakları ve formatlar için tam ExampleGen bileşenlerini içerir:
Bu veri kaynakları ve biçimleri için ExampleGen bileşenlerinin geliştirilmesini sağlayan özel yürütücüler de mevcuttur:
Özel yürütücülerin 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.
Ayrıca, bu veri kaynakları ve biçimleri, özel bileşen örnekleri olarak mevcuttur:
Apache Beam tarafından desteklenen veri biçimlerini alma
Apache Beam, çok çeşitli veri kaynaklarından ve biçimlerden veri almayı destekler ( aşağıya bakın ). Bu yetenekler, bazı mevcut ExampleGen bileşenleri tarafından 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 veri kaynakları için (şu anda, CSV dosyaları, tf.Example
, tf.SequenceExample
ve protokol biçimine sahip TFRecord dosyaları ve BigQuery sorgularının sonuçları) ExampleGen ardışık düzen bileşeni doğrudan dağıtımda kullanılabilir ve çok az özelleştirme gerektirir. Örneğin:
example_gen = CsvExampleGen(input_base='data_root')
veya harici TFRecord'u tf.Example
ile doğrudan içe aktarmak için aşağıdaki gibi:
example_gen = ImportExampleGen(input_base=path_to_tfrecord_dir)
Yayılma, Sürüm ve Bölme
Span, eğitim örneklerinin bir gruplandırılmasıdır. Verileriniz bir dosya sisteminde kalıcıysa, her Span ayrı bir dizinde saklanabilir. Bir Span'ın semantiği, TFX'e sabit kodlanmış değildir; Span, bir günlük veriye, bir saatlik veriye veya göreviniz için anlamlı olan diğer herhangi bir gruplandırmaya karşılık gelebilir.
Her Span, birden çok veri Sürümünü tutabilir. Örnek vermek gerekirse, düşük kaliteli verileri temizlemek için bir Span'dan bazı örnekleri kaldırırsanız, bu, o Span'ın yeni bir Sürümü ile sonuçlanabilir. Varsayılan olarak, TFX bileşenleri bir Span içindeki en son Sürümde çalışır.
Bir Yayılım içindeki her Sürüm ayrıca birden çok Bölmeye bölünebilir. Bir Span'ı bölmek için en yaygın kullanım durumu, onu eğitim ve değerlendirme verilerine bölmektir.
Özel giriş/çıkış ayrımı
ExampleGen'in çıkaracağı tren/değerlendirme bölme oranını özelleştirmek için, ExampleGen bileşeni için output_config
ayarlayın. Örneğin:
# Input has a single split 'input_dir/*'.
# Output 2 splits: train:eval=3:1.
output = proto.Output(
split_config=example_gen_pb2.SplitConfig(splits=[
proto.SplitConfig.Split(name='train', hash_buckets=3),
proto.SplitConfig.Split(name='eval', hash_buckets=1)
]))
example_gen = CsvExampleGen(input_base=input_dir, output_config=output)
Bu örnekte hash_buckets
nasıl ayarlandığına dikkat edin.
Halihazırda bölünmüş bir giriş kaynağı için, ExampleGen bileşeni için input_config
ayarlayın:
# 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 = proto.Input(splits=[
example_gen_pb2.Input.Split(name='train', pattern='train/*'),
example_gen_pb2.Input.Split(name='eval', pattern='eval/*')
])
example_gen = CsvExampleGen(input_base=input_dir, input_config=input)
Dosya tabanlı örnek gen (örn. CsvExampleGen ve ImportExampleGen) için pattern
, giriş temel yolu tarafından verilen kök dizini ile giriş dosyalarına eşlenen glob göreli dosya kalıbıdır. Sorgu tabanlı örnek gen (ör. BigQueryExampleGen, PrestoExampleGen) için pattern
bir SQL sorgusudur.
Varsayılan olarak, tüm girdi taban dizini tek bir girdi bölme işlemi olarak değerlendirilir ve tren ve değerlendirme çıktı bölme işlemi 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. Ve aşağı yönde özel bölmeleri 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 kaydın yerine, örnekleri bölümlemek için bir özellik kullanılabilir. Bir özellik varsa, ExampleGen, bölüm anahtarı olarak o özelliğin parmak izini kullanacaktır.
Bu özellik, örneklerin belirli özelliklerine göre kararlı bir bölme 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ölmeye konur.
Bir "özelliğin" ne anlama geldiğinin ve bir "özelliğin" belirtilen adla nasıl eşleştirileceğinin yorumlanması, ExampleGen uygulamasına ve örneklerin türüne bağlıdır.
Hazır ExampleGen uygulamaları için:
- tf.Example oluşturursa, "özellik", tf.Example.features.feature içindeki bir giriş anlamına gelir.
- tf.SequenceExample oluşturursa, "özellik", tf.SequenceExample.context.feature içindeki bir giriş anlamına gelir.
- Yalnızca int64 ve bayt özellikleri desteklenir.
Aşağıdaki durumlarda, ExampleGen çalışma zamanı hataları atar:
- Belirtilen özellik adı örnekte mevcut değil.
- Boş özellik:
tf.train.Feature()
. - Desteklenmeyen özellik türleri, örneğin kayan özellikler.
Örneklerdeki bir özelliğe dayalı olarak tren/değerlendirme ayrımının çıktısını almak için, ExampleGen bileşeni için output_config
ayarlayın. Örneğin:
# Input has a single split 'input_dir/*'.
# Output 2 splits based on 'user_id' features: train:eval=3:1.
output = proto.Output(
split_config=proto.SplitConfig(splits=[
proto.SplitConfig.Split(name='train', hash_buckets=3),
proto.SplitConfig.Split(name='eval', hash_buckets=1)
],
partition_feature_name='user_id'))
example_gen = CsvExampleGen(input_base=input_dir, output_config=output)
Bu örnekte partition_feature_name
öğesinin nasıl ayarlandığına dikkat edin.
açıklık
Span, giriş glob modelinde '{SPAN}' özelliği kullanılarak alınabilir:
- Bu özellik, rakamlarla eşleşir ve verileri ilgili SPAN numaralarıyla 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 tam sayıların genişliği ile belirtilebilir. Örneğin, 'data_{SPAN:2}.file', 'data_02.file' ve 'data_27.file' (sırasıyla Span-2 ve Span-27 için girdiler olarak) gibi dosyalara eşlenir, ancak 'data_1 ile eşlenmez. file' veya 'data_123.file'.
- SPAN özelliği eksik olduğunda, her zaman Span '0' olduğu varsayılır.
- SPAN belirtilirse, ardışık düzen en son yayılma alanını işleyecek ve yayılma numarasını meta verilerde depolayacaktır.
Örneğin, giriş verileri olduğunu varsayalım:
- '/tmp/span-1/tren/veri'
- '/tmp/span-1/eval/veri'
- '/tmp/span-2/tren/veri'
- '/tmp/span-2/eval/veri'
ve giriş yapılandırması aşağıdaki gibi gösterilir:
splits {
name: 'train'
pattern: 'span-{SPAN}/train/*'
}
splits {
name: 'eval'
pattern: 'span-{SPAN}/eval/*'
}
boru hattını tetiklerken şunları işleyecektir:
- tren bölünmüş olarak '/tmp/span-2/train/data'
- '/tmp/span-2/eval/data' değerlendirme bölümü olarak
Açıklık numarası '2' olarak. Daha sonra '/tmp/span-3/...' hazırsa, ardışık düzeni yeniden tetikleyin ve işlem için '3' aralığını alacaktır. Aşağıda, yayılma özelliğinin kullanılmasına ilişkin kod örneği gösterilmektedir:
input = proto.Input(splits=[
proto.Input.Split(name='train',
pattern='span-{SPAN}/train/*'),
proto.Input.Split(name='eval',
pattern='span-{SPAN}/eval/*')
])
example_gen = CsvExampleGen(input_base='/tmp', input_config=input)
Belirli bir aralığın alınması, aşağıda ayrıntıları verilen RangeConfig ile yapılabilir.
Tarih
Veri kaynağınız tarihe göre dosya sisteminde düzenlenmişse, TFX tarihleri doğrudan yayılma sayılarına eşlemeyi destekler. Tarihlerden aralıklara eşlemeyi temsil eden üç özellik vardır: {YYYY}, {MM} ve {DD}:
- Belirtilen üç özellik, giriş glob modelinde tamamen mevcut olmalıdır:
- {SPAN} belirtimi ya da bu tarih belirtimi kümesi özel olarak belirtilebilir.
- YYYY'den yıl, AA'dan ay ve DD'den ayın günü ile bir takvim tarihi hesaplanır, ardından aralık numarası, unix döneminden bu yana geçen gün sayısı olarak hesaplanır (ör. 1970-01-01). Örneğin, "log-{YYYY}{MM}{DD}.data", "log-19700101.data" dosyasıyla eşleşir ve bunu Span-0 için girdi olarak ve "log-20170101.data" için girdi olarak kullanır. Açıklık-17167.
- Bu tarih özellikleri kümesi belirtilirse, ardışık düzen en son tarihi işleyecek ve karşılık gelen yayılma numarasını meta verilerde depolayacaktır.
Örneğin, takvim tarihine göre düzenlenmiş giriş verileri olduğunu varsayalım:
- '/tmp/1970-01-02/tren/veri'
- '/tmp/1970-01-02/eval/veri'
- '/tmp/1970-01-03/tren/veri'
- '/tmp/1970-01-03/eval/veri'
ve giriş yapılandırması aşağıdaki gibi gösterilir:
splits {
name: 'train'
pattern: '{YYYY}-{MM}-{DD}/train/*'
}
splits {
name: 'eval'
pattern: '{YYYY}-{MM}-{DD}/eval/*'
}
boru hattını tetiklerken şunları işleyecektir:
- tren bölünmüş olarak '/tmp/1970-01-03/train/data'
- '/tmp/1970-01-03/eval/data' değerlendirme ayırma olarak
Açıklık numarası '2' olarak. Daha sonra '/tmp/1970-01-04/...' hazırsa, işlem hattını tekrar tetikleyin ve işlem için '3' aralığını alacaktır. Aşağıda, tarih belirtimini kullanmak için kod örneği gösterilmektedir:
input = proto.Input(splits=[
proto.Input.Split(name='train',
pattern='{YYYY}-{MM}-{DD}/train/*'),
proto.Input.Split(name='eval',
pattern='{YYYY}-{MM}-{DD}/eval/*')
])
example_gen = CsvExampleGen(input_base='/tmp', input_config=input)
Sürüm
Sürüm, giriş glob modelinde '{VERSION}' özelliği kullanılarak alınabilir:
- Bu özellik, rakamlarla eşleşir ve verileri SPAN altındaki ilgili VERSION numaralarıyla eşler. Sürüm spesifikasyonunun Span veya Date spesifikasyonu ile birlikte kullanılabileceğini unutmayın.
- Bu özellik, isteğe bağlı olarak, SPAN spesifikasyonu ile aynı şekilde genişlikle de belirtilebilir. örneğin 'span-{SPAN}/version-{VERSION:4}/data-*'.
- VERSION özelliği eksik olduğunda, sürüm Yok olarak ayarlanır.
- SPAN ve VERSION belirtilmişse, ardışık düzen en son yayılma için en son sürümü işler ve sürüm numarasını meta verilerde depolar.
- VERSION belirtilirse, ancak SPAN (veya tarih özelliği) belirtilmezse, bir hata verilir.
Örneğin, giriş verileri olduğunu varsayalım:
- '/tmp/span-1/ver-1/train/data'
- '/tmp/span-1/ver-1/eval/data'
- '/tmp/span-2/ver-1/train/data'
- '/tmp/span-2/ver-1/eval/data'
- '/tmp/span-2/ver-2/train/data'
- '/tmp/span-2/ver-2/eval/data'
ve giriş yapılandırması aşağıdaki gibi gösterilir:
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 bölünmüş olarak '/tmp/span-2/ver-2/train/data'
- değerlendirme ayırma olarak '/tmp/span-2/ver-2/eval/data'
yayılma numarası '2' ve sürüm numarası '2' olarak. Daha sonra '/tmp/span-2/ver-3/...' hazırsa, ardışık düzeni yeniden başlatmanız yeterlidir ve işlem için yayılma alanı '2' ve sürüm '3' alacaktır. Aşağıda, sürüm özelliklerini kullanmak için kod örneği gösterilmektedir:
input = proto.Input(splits=[
proto.Input.Split(name='train',
pattern='span-{SPAN}/ver-{VERSION}/train/*'),
proto.Input.Split(name='eval',
pattern='span-{SPAN}/ver-{VERSION}/eval/*')
])
example_gen = CsvExampleGen(input_base='/tmp', 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 aralık yapılandırmasını kullanarak dosya tabanlı ExampleGen'de belirli bir aralığın alınmasını ve işlenmesini destekler. Belirli bir yayılma alanını almak için dosya tabanlı ExampleGen bileşeni için range_config
ayarlayın. Örneğin, giriş verileri olduğunu varsayalım:
- '/tmp/span-01/tren/veri'
- '/tmp/span-01/eval/veri'
- '/tmp/span-02/tren/veri'
- '/tmp/span-02/eval/veri'
Span '1' ile verileri özel olarak almak ve işlemek için giriş yapılandırmasına ek olarak bir aralık yapılandırması belirtiriz. ExampleGen'in yalnızca tek aralıklı statik aralıkları desteklediğini unutmayın (belirli bireysel yayılmaları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 yayılma alanını ve sıfır doldurma için yayılma genişliği bilgisini (sağlanmışsa) kullanarak, ExampleGen, sağlanan bölme modellerindeki SPAN belirtimini istenen yayılma numarasıyla değiştirecektir. Bir kullanım örneği aşağıda gösterilmiştir:
# 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 = proto.Input(splits=[
proto.Input.Split(name='train',
pattern='span-{SPAN:2}/train/*'),
proto.Input.Split(name='eval',
pattern='span-{SPAN:2}/eval/*')
])
# Specify the span number to be processed here using StaticRange.
range = proto.RangeConfig(
static_range=proto.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.
example_gen = CsvExampleGen(input_base=input_dir, input_config=input,
range_config=range)
Aralık yapılandırması, SPAN özelliği yerine tarih özelliği kullanılıyorsa, belirli tarihleri işlemek için de kullanılabilir. Örneğin, takvim tarihine göre düzenlenmiş giriş verileri olduğunu varsayalım:
- '/tmp/1970-01-02/tren/veri'
- '/tmp/1970-01-02/eval/veri'
- '/tmp/1970-01-03/tren/veri'
- '/tmp/1970-01-03/eval/veri'
2 Ocak 1970 tarihli verileri özel olarak almak ve işlemek için aşağıdakileri yapıyoruz:
from tfx.components.example_gen import utils
input = proto.Input(splits=[
proto.Input.Split(name='train',
pattern='{YYYY}-{MM}-{DD}/train/*'),
proto.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 = proto.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.
example_gen = CsvExampleGen(input_base=input_dir, input_config=input,
range_config=range)
Özel ÖrnekGen
Halihazırda mevcut olan ExampleGen bileşenleri ihtiyaçlarınızı karşılamıyorsa, farklı veri kaynaklarından veya farklı veri formatlarında okuma yapmanızı sağlayacak özel bir ExampleGen oluşturabilirsiniz.
Dosya Tabanlı ÖrnekGen Özelleştirme (Deneysel)
İlk olarak BaseExampleGenExecutor'ı, tren/değerlendirme giriş bölmenizden TF örneklerine dönüştürmeyi sağlayan özel bir Beam PTransform ile genişletin. Örneğin, CsvExampleGen yürütücüsü , girdi CSV bölünmesinden TF örneklerine dönüştürme sağlar.
Ardından, CsvExampleGen bileşeninde olduğu gibi yukarıdaki yürütücü ile bir bileşen oluşturun. Alternatif olarak, aşağıda gösterildiği gibi standart ExampleGen bileşenine özel bir yürütücü iletin.
from tfx.components.base import executor_spec
from tfx.components.example_gen.csv_example_gen import executor
example_gen = FileBasedExampleGen(
input_base=os.path.join(base_dir, 'data/simple'),
custom_executor_spec=executor_spec.ExecutorClassSpec(executor.Executor))
Artık Avro ve Parquet dosyalarının bu yöntemle okunmasını da destekliyoruz.
Ek Veri Formatları
Apache Beam, bir dizi ek veri biçiminin okunmasını destekler. Işın G/Ç Dönüşümleri aracılığıyla. Avro örneğine benzer bir desen kullanarak Işın G/Ç 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ı itibariyle, Beam Python SDK için şu anda desteklenen formatlar ve veri kaynakları şunları içerir:
- Amazon S3
- Apaçi Avro
- Apache Hadoop'u
- Apaçi Kafka
- Apaçi Parke
- Google Bulut BigQuery
- Google Bulut Büyük Tablo
- Google Bulut Veri Deposu
- Google Cloud Pub/Sub
- Google Bulut Depolama (GCS)
- MongoDB
En son liste için Beam belgelerine bakın.
Sorgu Tabanlı ÖrnekGen Özelleştirmesi (Deneysel)
İ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ı yapılandırmaları gerektirebilir veya gerektirmeyebilir. Örneğin, BigQuery yürütücüsü , bağlantı yapılandırma ayrıntılarını özetleyen varsayılan bir beam.io bağlayıcısını kullanarak okur. Presto yürütücüsü , giriş olarak özel bir Beam PTransform 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 ilişkin 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.
İstatistikGen
Varsayılan davranış, tüm bölmeler için istatistik üretimi gerçekleştirmektir.
Herhangi bir bölmeyi hariç tutmak için, StatisticsGen bileşeni için exclude_splits
ayarlayın. Örneğin:
# Exclude the 'eval' split.
statistics_gen = StatisticsGen(
examples=example_gen.outputs['examples'],
exclude_splits=['eval'])
ŞemaGen
Varsayılan davranış, tüm bölmelere dayalı bir şema oluşturmaktır.
Herhangi bir bölmeyi hariç tutmak için, SchemaGen bileşeni için exclude_splits
ayarlayın. Örneğin:
# Exclude the 'eval' split.
schema_gen = SchemaGen(
statistics=statistics_gen.outputs['statistics'],
exclude_splits=['eval'])
Örnek Doğrulayıcı
Varsayılan davranış, bir şemaya karşı giriş örneklerindeki tüm bölünmelerin istatistiklerini doğrulamaktır.
Herhangi bir bölmeyi hariç tutmak için, exclude_splits
bileşeni için Exclusion_splits'i ayarlayın. Örneğin:
# Exclude the 'eval' split.
example_validator = ExampleValidator(
statistics=statistics_gen.outputs['statistics'],
schema=schema_gen.outputs['schema'],
exclude_splits=['eval'])
dönüştürmek
Varsayılan davranış, 'tren' bölünmesinden meta verileri analiz etmek ve üretmek ve tüm bölmeleri dönüştürmektir.
Analiz bölmelerini ve dönüştürme bölmelerini belirtmek için, Dönüştür bileşeni için splits_config
ayarlayın. Örneğin:
# Analyze the 'train' split and transform all splits.
transform = Transform(
examples=example_gen.outputs['examples'],
schema=schema_gen.outputs['schema'],
module_file=_taxi_module_file,
splits_config=proto.SplitsConfig(analyze=['train'],
transform=['train', 'eval']))
Eğitmen ve Tuner
Varsayılan davranış, 'tren' bölümünde tren ve 'değerlendirme' bölümünde değerlendirmedir.
Tren bölmelerini belirtmek ve bölmeleri değerlendirmek için Trainer bileşeni için train_args
ve eval_args
öğelerini ayarlayın. Örneğin:
# Train on the 'train' split and evaluate on the 'eval' split.
Trainer = Trainer(
module_file=_taxi_module_file,
examples=transform.outputs['transformed_examples'],
schema=schema_gen.outputs['schema'],
transform_graph=transform.outputs['transform_graph'],
train_args=proto.TrainArgs(splits=['train'], num_steps=10000),
eval_args=proto.EvalArgs(splits=['eval'], num_steps=5000))
Değerlendirici
Varsayılan davranış, 'değerlendirme' bölümünde hesaplanan metrikleri sağlamaktır.
Özel bölmelerdeki değerlendirme istatistiklerini hesaplamak için, Evaluator bileşeni için example_splits
ayarlayın. Örneğin:
# Compute metrics on the 'eval1' split and the 'eval2' split.
evaluator = Evaluator(
examples=example_gen.outputs['examples'],
model=trainer.outputs['model'],
example_splits=['eval1', 'eval2'])
CsvExampleGen API başvurusunda , FileBasedExampleGen API uygulamasında ve ImportExampleGen API başvurusunda daha fazla ayrıntı mevcuttur.