tf.Transform
0.30
sürümünden başlayarak, TF 2.x davranışları açıkça devre dışı bırakılmadığı sürece varsayılan davranış, bir TF 2.x SavedModel'in dışa aktarılmasıdır. Bu sayfa, dönüşüm grafiğini TensorFlow 2.x SavedModel olarak dışa aktarmak için tf.Transform
kullanımına ilişkin bir kılavuz sağlar.
TF 2.x ile tf.Transform'daki yenilikler
Keras modellerini preprocessing_fn
içine yükleme
Aşağıdaki örnekte gösterildiği gibi Keras modellerini yüklemek için lütfen tft.make_and_track_object
API'sini kullanın.
def preprocessing_fn(inputs):
keras_model = tft.make_and_track_object(lambda: tf.keras.models.load_model(...), name='_unique_name')
...
return {'keras_model_output': keras_model(inputs[...])}
TF 2.x tf.hub modüllerini kullanma
TF 2.x hub modülleri tf.Transform
yalnızca preprocessing_fn
izlendiğinde ve TF 2.x SavedModel olarak dışa aktarıldığında çalışır (bu, tensorflow_transform 0.30
ile başlayan varsayılan davranıştır). Aşağıdaki örnekte gösterildiği gibi tf.hub
modüllerini yüklemek için lütfen tft.make_and_track_object
API'sini kullanın.
def preprocessing_fn(inputs):
hub_module = tft.make_and_track_object(lambda: hub.load(...))
...
return {'hub_module_output': hub_module(inputs[...])}
Olası geçiş sorunları
Mevcut bir tf.Transform
işlem hattını TF 1.x'ten TF 2.x'e geçirirseniz aşağıdaki sorunlarla karşılaşılabilir:
RuntimeError: preprocessing_fn
analizörlerin sırası belirleyici değil gibi görünüyor.
TF 2.x'te kullanıcı tarafından sağlanan preprocessing_fn
birkaç kez izlenir. TFT analizörlerinin karşılaşılma sırası her izde değişirse bu hata ortaya çıkacaktır. Bu durum, TFT analizörlerinin çağrıldığı sıradaki herhangi bir determinizm dışı durumun ortadan kaldırılmasıyla düzeltilebilir.
transform_raw_features
çıktısı beklenen özelliği içermiyor.
Örnek istisnalar:
KeyError: \<feature key
veya
\<feature key> not found in features dictionary.
TFTransformOutput.transform_raw_features
drop_unused_features
parametresini yok sayar ve True'muş gibi davranır. Almaya çalıştığınız anahtarın içinde mevcut olup olmadığını kontrol etmek için lütfen bu API'deki çıktı sözlüğünün tüm kullanımlarını güncelleyin.
tf.estimator.BaselineClassifier, Tablo başlatılmadı hatasını görüyor.
Örnek istisna:
tensorflow.python.framework.errors_impl.FailedPreconditionError: Table not initialized.
Tahminci tabanlı uygulayıcı ile Eğitmen desteği en iyi çabadır. Diğer tahmin ediciler çalışırken BaselineClassifier'da tablo başlatmayla ilgili sorunlar gördük. Lütfen tf.Transform
TF 2.x'i devre dışı bırakın .
Bilinen sorunlar / Özellikler henüz desteklenmiyor
Kelime dağarcığının TFRecord biçiminde çıkarılması henüz desteklenmiyor.
tfrecord_gzip
tft.vocabulary
(ve diğer sözlük API'lerinde) file_format
parametresi için henüz geçerli bir değer olarak desteklenmiyor.
Eski tf.Transform davranışını koruma
tf.Transform
işlem hattınızın TF 2.x ile çalışmaması gerekiyorsa eski davranışı aşağıdaki yollardan biriyle koruyabilirsiniz:
-
tf.compat.v1.disable_v2_behavior()
öğesini çağıraraktf.Transform
TF2'yi devre dışı bırakın -
force_tf_compat_v1=True
tf.Transform
bağımsız bir kitaplık olarak kullanılıyorsatft_beam.Context
veya TFX'teki Transform bileşenine aktarılıyor.