Sử dụng tf.Transform với TensorFlow 2.x

Bắt đầu với bản phát hành 0.30 của tf.Transform , hành vi mặc định là xuất TF 2.x SavingModel trừ khi hành vi TF 2.x bị vô hiệu hóa rõ ràng. Trang này cung cấp hướng dẫn sử dụng tf.Transform để xuất biểu đồ biến đổi dưới dạng TensorFlow 2.x SavingModel.

Tính năng mới trong tf.Transform với TF 2.x

Đang tải các mô hình Keras trong preprocessing_fn

Vui lòng sử dụng API tft.make_and_track_object để tải các mô hình Keras như trong ví dụ bên dưới.

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

Sử dụng mô-đun TF 2.x tf.hub

Các mô-đun trung tâm TF 2.x chỉ hoạt động trong tf.Transform khi preprocessing_fn được truy tìm và xuất dưới dạng TF 2.x SavingModel (đây là hành vi mặc định bắt đầu bằng tensorflow_transform 0.30 ). Vui lòng sử dụng API tft.make_and_track_object để tải các mô-đun tf.hub như trong ví dụ bên dưới.

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

Các vấn đề di cư tiềm ẩn

Nếu di chuyển đường dẫn tf.Transform hiện có từ TF 1.x sang TF 2.x, có thể gặp phải các vấn đề sau:

RuntimeError: Thứ tự của các máy phân tích trong preprocessing_fn của bạn dường như không mang tính xác định.

Trong TF 2.x, preprocessing_fn do người dùng cung cấp được truy tìm nhiều lần. Nếu thứ tự mà máy phân tích TFT gặp phải thay đổi theo từng dấu vết thì lỗi này sẽ tăng lên. Điều này có thể được khắc phục bằng cách loại bỏ bất kỳ yếu tố không xác định nào theo thứ tự mà máy phân tích TFT được gọi.

Đầu ra của transform_raw_features không chứa tính năng mong đợi.

Ví dụ ngoại lệ:

KeyError: \<feature key

hoặc

\<feature key> not found in features dictionary.

TFTransformOutput.transform_raw_features bỏ qua tham số drop_unused_features và hoạt động như thể nó là True. Vui lòng cập nhật mọi cách sử dụng từ điển đầu ra từ API này để kiểm tra xem khóa bạn đang cố truy xuất có tồn tại trong đó hay không.

tf.estimator.BaselineClassifier thấy lỗi Bảng không được khởi tạo.

Ví dụ ngoại lệ:

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

Hỗ trợ dành cho Huấn luyện viên với người thực thi dựa trên Công cụ ước tính là nỗ lực tốt nhất. Trong khi các công cụ ước tính khác hoạt động, chúng tôi nhận thấy có vấn đề khi khởi tạo bảng trong BaselineClassifier. Vui lòng tắt TF 2.x trong tf.Transform .

Sự cố đã biết/Tính năng chưa được hỗ trợ

Việc xuất từ ​​vựng ở định dạng TFRecord chưa được hỗ trợ.

tfrecord_gzip chưa được hỗ trợ dưới dạng giá trị hợp lệ cho tham số file_format trong tft.vocabulary (và các API từ vựng khác).

Giữ lại hành vi tf.Transform kế thừa

Nếu đường dẫn tf.Transform của bạn không chạy với TF 2.x, bạn có thể giữ lại hành vi cũ theo một trong các cách sau: