เริ่มต้นด้วยการเปิดตัว tf.Transform
0.30
ลักษณะการทำงานเริ่มต้นคือการส่งออก TF 2.x SavedModel เว้นแต่ว่าพฤติกรรม TF 2.x จะถูกปิดใช้งานอย่างชัดเจน หน้านี้ให้คำแนะนำสำหรับการใช้ tf.Transform
เพื่อส่งออกกราฟการแปลงเป็น TensorFlow 2.x SavedModel
ใหม่ใน tf.Transform ด้วย TF 2.x
กำลังโหลดโมเดล Keras ภายใน preprocessing_fn
โปรดใช้ tft.make_and_track_object
API เพื่อโหลดโมเดล Keras ดังที่แสดงในตัวอย่างด้านล่าง
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
และทำงานเหมือนกับว่าเป็น True โปรดอัปเดตการใช้งานพจนานุกรมเอาต์พุตจาก API นี้เพื่อตรวจสอบว่ามีคีย์ที่คุณพยายามดึงข้อมูลอยู่ในนั้นหรือไม่
tf.estimator.BaselineClassifier เห็นข้อผิดพลาดในการเตรียมใช้งานตารางไม่ได้
ข้อยกเว้นตัวอย่าง:
tensorflow.python.framework.errors_impl.FailedPreconditionError: Table not initialized.
การสนับสนุนสำหรับ Trainer ที่มีผู้ดำเนินการที่ใช้ Estimator ถือเป็นความพยายามอย่างดีที่สุด ในขณะที่ตัวประมาณค่าอื่นๆ ทำงาน เราได้พบปัญหาเกี่ยวกับการเริ่มต้นตารางใน BaselineClassifier โปรด ปิดการใช้งาน TF 2.x ใน tf.Transform
ปัญหาที่ทราบ/ฟีเจอร์ยังไม่รองรับ
ยังไม่รองรับการแสดงคำศัพท์ในรูปแบบ TFRecord
tfrecord_gzip
ยังไม่รองรับเป็นค่าที่ถูกต้องสำหรับพารามิเตอร์ file_format
ใน tft.vocabulary
(และ API คำศัพท์อื่นๆ)
การรักษาพฤติกรรม tf.Transform แบบดั้งเดิม
หากไปป์ไลน์ tf.Transform
ของคุณไม่ควรทำงานด้วย TF 2.x คุณสามารถคงลักษณะการทำงานแบบเดิมไว้ได้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้:
- ปิดการใช้งาน TF2 ใน
tf.Transform
โดยเรียกtf.compat.v1.disable_v2_behavior()
- การส่งผ่าน
force_tf_compat_v1=True
ไปยังtft_beam.Context
หากใช้tf.Transform
เป็นไลบรารีแบบสแตนด์อโลนหรือไปยังส่วนประกอบ Transform ใน TFX