ML 커뮤니티 데이는 11월 9일입니다! TensorFlow, JAX에서 업데이트를 우리와 함께, 더 자세히 알아보기

TensorFlow 2.x에서 tf.Transform 사용하기

을 시작으로 0.30 의 출시 tf.Transform , 기본 동작은 TF 2.x에서의 행동이 명시 적으로 불가능하지 않는 한 TF 2.x에서의 SavedModel를 내보내는 것입니다. 이 페이지는 이용을위한 가이드 제공 tf.Transform TensorFlow 2.X SavedModel로 변환 그래프를 내보낼.

TF 2.x가 포함된 tf.Transform의 새로운 기능

내 Keras 모델을로드 preprocessing_fn

사용하시기 바랍니다 tft.make_and_track_object 아래의 예와 같이 Keras 모델을로드 할 API를.

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 모듈 사용

TF 2.X 허브 모듈은 작동 tf.Transform 유일한 경우 preprocessing_fn 추적하고 TF 2.x에서의 SavedModel (이로 시작하는 기본 동작으로 수출되고 tensorflow_transform 0.30 ). 사용하시기 바랍니다 tft.make_and_track_object 로드 API를 tf.hub 아래의 예와 같이 모듈을.

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

잠재적인 마이그레이션 문제

기존 마이그레이션하는 경우 tf.Transform 파이프 라인에서 TF 1.x에서에 TF 2.x에서, 다음과 같은 문제가 발생할 수 있습니다 :

RuntimeError에 : 당신의 분석기의 순서 preprocessing_fn 비 결정적 것으로 보인다.

TF의 2.X에서 preprocessing_fn 사용자가 제공 여러 번 추적됩니다. 각 트레이스에서 TFT 분석기를 만나는 순서가 변경되면 이 오류가 발생합니다. 이것은 TFT 분석기가 호출되는 순서대로 모든 비결정성을 제거하여 수정할 수 있습니다.

의 출력 transform_raw_features 예상되는 기능을 포함하지 않습니다.

예시 예외:

KeyError: \<feature key>

또는

\<feature key> not found in features dictionary.

TFTransformOutput.transform_raw_features 무시 drop_unused_features 그것이 사실 인 것처럼 매개 변수 및 동작합니다을. 이 API의 출력 사전 사용을 업데이트하여 검색하려는 키가 사전에 존재하는지 확인하십시오.

tf.estimator.BaselineClassifier에 테이블이 초기화되지 않음 오류가 표시됩니다.

예외 예:

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

Estimator 기반 실행기로 Trainer를 지원하는 것이 최선입니다. 다른 추정기가 작동하는 동안 BaselineClassifier에서 테이블 초기화 문제가 발생했습니다. 제발 안 함 TF 2.x를 tf.Transform .

알려진 문제/아직 지원되지 않는 기능

TFRecord 형식의 어휘 출력은 아직 지원되지 않습니다.

tfrecord_gzip 아직 유효한 값으로 지원되지 file_format 의 파라미터 tft.vocabulary (다른 어휘의 API).

레거시 tf.Transform 동작 유지

귀하의 경우 tf.Transform 파이프 라인 TF 2.x를 운영 할 수없는, 당신은 다음 중 하나의 방법으로 기존 동작을 유지할 수 있습니다 :