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:
- Tắt TF2 trong
tf.Transform
bằng cách gọitf.compat.v1.disable_v2_behavior()
- Truyền
force_tf_compat_v1=True
chotft_beam.Context
nếu sử dụngtf.Transform
làm thư viện độc lập hoặc cho thành phần Transform trong TFX.