¡Únase a la comunidad de SIG TFX-Addons y ayude a que TFX sea aún mejor!

Usando tf.Transform con TensorFlow 2.x

A partir de la versión 0.30 de tf.Transform , el comportamiento predeterminado es exportar un modelo guardado TF 2.x a menos que los comportamientos TF 2.x estén explícitamente deshabilitados. Esta página proporciona una guía para usar tf.Transform para exportar el gráfico de transformación como un modelo guardado de TensorFlow 2.x.

Nuevo en tf.Transform con TF 2.x

Uso de módulos TF 2.x tf.hub

Los módulos concentradores TF 2.x funcionan en tf.Transform solo cuando preprocessing_fn se rastrea y exporta como un modelo guardado TF 2.x (este es el comportamiento predeterminado que comienza con tensorflow_transform 0.30 ). Utilice la API tft.make_and_track_object para cargar módulos tf.hub como se muestra en el siguiente ejemplo.

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

Posibles problemas de migración

Si migra una canalización tf.Transform existente de TF tf.Transform TF 2.x, se pueden encontrar los siguientes problemas:

La salida de transform_raw_features no contiene la característica esperada.

Excepciones de ejemplo:

KeyError: \<feature key>

o

\<feature key> not found in features dictionary.

TFTransformOutput.transform_raw_features ignora el parámetro drop_unused_features y se comporta como si fuera True. Actualice cualquier uso del diccionario de salida de esta API para comprobar si la clave que está intentando recuperar existe en él.

tf.estimator.BaselineClassifier ve el error Tabla no inicializada.

Excepción de ejemplo:

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

El soporte para Trainer con ejecutor basado en Estimator es el mejor esfuerzo. Mientras que otros estimadores funcionan, hemos visto problemas con la inicialización de la tabla en BaselineClassifier. Desactive TF 2.x en tf.Transform .

Problemas conocidos / funciones que aún no se admiten

No se admite la carga de modelos Keras dentro de preprocessing_fn .

Esto generará la siguiente excepción:

ValueError: tf.function-decorated function tried to create variables on non-first call.

Desactive TF 2.x en tf.Transform si funciona para su caso de uso (tampoco se garantiza que funcione con los modelos Keras).

Aún no se admite la salida de vocabularios en formato TFRecord.

tfrecord_gzip todavía no se admite como un valor válido para el file_format parámetro en tft.vocabulary (y otras API de vocabulario).

Conservación del comportamiento tf.Transform heredado

Si su canalización tf.Transform no debe ejecutarse con TF 2.x, puede conservar el comportamiento heredado de una de las siguientes maneras: