Bắt đầu với 0.30
phát hành tf.Transform
, hành vi mặc định là để xuất khẩu một SavedModel TF 2.x trừ hành vi TF 2.x là rõ ràng người tàn tật. Trang này cung cấp một hướng dẫn sử dụng tf.Transform
xuất khẩu đồ thị chuyển đổi như một TensorFlow 2.x SavedModel.
Tính năng mới trong tf.Transform với TF 2.x
Đang tải mô hình Keras trong preprocessing_fn
Vui lòng sử dụng các tft.make_and_track_object
API để tải mô hình Keras như trong ví dụ dưới đây.
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
TF module hub 2.x làm việc trong tf.Transform
chỉ khi preprocessing_fn
được truy tìm và xuất ra dưới dạng một SavedModel TF 2.x (đây là hành vi mặc định bắt đầu với tensorflow_transform 0.30
). Vui lòng sử dụng các tft.make_and_track_object
API để tải tf.hub
module như trong ví dụ dưới đây.
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 chuyển tiềm ẩn
Nếu việc di chuyển một hiện tf.Transform
đường ống từ TF 1.x để TF 2.x, các vấn đề sau đây có thể gặp phải:
RuntimeError: Trình tự phân tích trong bạn preprocessing_fn
dường như là không xác định.
Trong TF 2.x, các preprocessing_fn
được cung cấp bởi người dùng sẽ được truy nhiều lần. Nếu thứ tự mà các bộ phân tích TFT gặp phải thay đổi theo từng dấu vết, 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à các bộ phân tích TFT được sử dụng.
Sản lượng transform_raw_features
không chứa tính năng dự kiến.
Ví dụ ngoại lệ:
KeyError: \<feature key>
hoặc
\<feature key> not found in features dictionary.
TFTransformOutput.transform_raw_features
bỏ qua drop_unused_features
tham số và cư xử như thể nó là True. Vui lòng cập nhật bất kỳ cách sử dụng nào của từ điển đầu ra từ API này để kiểm tra xem khóa bạn đang cố lấy có tồn tại trong đó 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ợ cho Trainer với người thực thi dựa trên Estimator là nỗ lực hết sức. Trong khi các trình ước tính khác hoạt động, chúng tôi đã thấy các vấn đề với việc khởi tạo bảng trong BaselineClassifier. Xin vui lòng vô hiệu hóa 2.x TF trong tf.Transform
.
Các sự cố đã biết / Tính năng chưa được hỗ trợ
Chưa hỗ trợ xuất các từ vựng ở định dạng TFRecord.
tfrecord_gzip
chưa được hỗ trợ như một giá trị hợp lệ cho file_format
tham số trong tft.vocabulary
(và API từ vựng khác).
Giữ lại hành vi tf. Transform cũ
Nếu bạn tf.Transform
đường ống không nên chạy với TF 2.x, bạn có thể giữ lại các hành vi di sản thuộc một trong các cách sau:
- Vô hiệu hoá TF2 trong
tf.Transform
bằng cách gọitf.compat.v1.disable_v2_behavior()
- Đi qua
force_tf_compat_v1=True
đểtft_beam.Context
nếu sử dụngtf.Transform
như một thư viện độc lập hoặc với thành phần chuyển đổi trong TFX.