Pomoc chronić Wielkiej Rafy Koralowej z TensorFlow na Kaggle Dołącz Wyzwanie

Korzystanie z tf.Transform z TensorFlow 2.x

Począwszy od 0.30 wydaniu tf.Transform , domyślnym zachowaniem jest wyeksportować SavedModel TF 2.x chyba zachowań TF 2.x są wyraźnie wyłączone. Ta strona zawiera przewodnik dla korzystania tf.Transform wyeksportować wykres przekształcenia postaci TensorFlow 2.x SavedModel.

Nowość w tf.Transform z TF 2.x

Ładowanie modele Keras w preprocessing_fn

Proszę używać tft.make_and_track_object API załadować modele Keras jak pokazano w poniższym przykładzie.

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[...])}

Korzystanie z modułów TF 2.x tf.hub

TF moduły piasty 2.x pracować tf.Transform tylko wtedy, gdy preprocessing_fn jest drogi i wywożone na SavedModel TF 2.x (to zachowanie domyślne poczynając od tensorflow_transform 0.30 ). Proszę używać tft.make_and_track_object API załadować tf.hub modułów, jak pokazano w poniższym przykładzie.

def preprocessing_fn(inputs):
  hub_module = tft.make_and_track_object(lambda: hub.load(...))
  ...
  return {'hub_module_output': hub_module(inputs[...])}

Potencjalne problemy z migracją

Jeśli migracji istniejącego tf.Transform rurociągu od TF TF 1.x do 2.x, następujące kwestie mogą wystąpić:

RuntimeError: Kolejność analizatorów w swojej preprocessing_fn wydaje się być zakaz deterministyczny.

W TF 2.x The preprocessing_fn dostarczone przez użytkownika jest prześledzić kilka razy. Jeśli kolejność napotykanych analizatorów TFT zmienia się z każdym śladem, ten błąd zostanie zgłoszony. Można to naprawić, usuwając wszelkie niedeterminizm w kolejności wywoływania analizatorów TFT.

Wyjście transform_raw_features nie zawiera oczekiwaną funkcję.

Przykładowe wyjątki:

KeyError: \<feature key>

lub

\<feature key> not found in features dictionary.

TFTransformOutput.transform_raw_features ignoruje drop_unused_features parametr i zachowuje się tak, jakby to była prawda. Zaktualizuj wszelkie zastosowania słownika wyjściowego z tego interfejsu API, aby sprawdzić, czy istnieje w nim klucz, który próbujesz pobrać.

tf.estimator.BaselineClassifier widzi błąd nie zainicjowania tabeli.

Przykładowy wyjątek:

tensorflow.python.framework.errors_impl.FailedPreconditionError: Table not initialized.

Wsparcie dla Trainera z executorem opartym na estymatorze jest najlepszym wysiłkiem. Podczas gdy inne estymatory działają, widzieliśmy problemy z inicjalizacją tabeli w BaselineClassifier. Proszę wyłączyć TF 2.x w tf.Transform .

Znane problemy / funkcje, które nie są jeszcze obsługiwane

Wyprowadzanie słowników w formacie TFRecord nie jest jeszcze obsługiwane.

tfrecord_gzip nie jest jeszcze obsługiwany jako ważnej wartości dla file_format parametru w tft.vocabulary (i innych API słownictwo).

Zachowanie starszego zachowania tf.Transform

Jeśli tf.Transform rurociąg nie powinien działać z TF 2.x, można zachować zachowanie starszego w jeden z następujących sposobów: