ปัญหาที่ทราบ

ชอบ YDF สำหรับโครงการใหม่

YDF เป็นห้องสมุดใหม่ของ Google เพื่อฝึกอบรม Decision Forests

YDF ขยายขีดความสามารถของ TF-DF โดยนำเสนอคุณสมบัติใหม่, API ที่เรียบง่าย, เวลาการฝึกอบรมที่เร็วขึ้น, เอกสารที่อัปเดต และความเข้ากันได้ที่เพิ่มขึ้นกับไลบรารี ML ยอดนิยม

ปัญหาบางอย่างที่กล่าวถึงด้านล่างนี้ได้รับการแก้ไขใน YDF

แพ็คเกจ Windows Pip ไม่พร้อมใช้งาน

TensorFlow Decision Forests ยังไม่มีให้บริการเป็นแพ็คเกจ Windows Pip

วิธีแก้ปัญหา:

ความเข้ากันไม่ได้กับ Keras 3

ความเข้ากันได้กับ Keras 3 ยังไม่ได้ถูกนำมาใช้ ใช้ tf_keras หรือ TensorFlow เวอร์ชันก่อน 2.16 หรือใช้ ydf

ยังไม่ผ่านการทดสอบสำหรับ conda

แม้ว่า TF-DF อาจใช้งานได้กับ Conda แต่สิ่งนี้ไม่ได้ทดสอบ และขณะนี้เราไม่ได้ดูแลรักษาแพ็คเกจบน conda-forge

ความเข้ากันไม่ได้กับ TensorFlow เวอร์ชันเก่าหรือกลางคืน

ABI ของ TensorFlow เข้ากันไม่ได้ระหว่างรุ่นต่างๆ เนื่องจาก TF-DF อาศัยการดำเนินการของ TensorFlow C++ แบบกำหนดเอง TF-DF แต่ละเวอร์ชันจึงเชื่อมโยงกับ TensorFlow เวอร์ชันเฉพาะ TF-DF เวอร์ชันล่าสุดจะเชื่อมโยงกับ TensorFlow เวอร์ชันล่าสุดเสมอ

ด้วยเหตุผลเหล่านี้ TF-DF เวอร์ชันปัจจุบันจึงอาจเข้ากันไม่ได้กับเวอร์ชันเก่าหรือกับ TensorFlow เวอร์ชันกลางคืน

หากใช้ TF และ TF-DF เวอร์ชันที่เข้ากันไม่ได้ คุณจะเห็นข้อผิดพลาดที่เป็นความลับ เช่น:

tensorflow_decision_forests/tensorflow/ops/training/training.so: undefined symbol: _ZN10tensorflow11GetNodeAttrERKNS_9AttrSliceEN4absl14lts_2020_09_2311string_viewEPSs
  • ใช้เวอร์ชัน TF-DF ที่เข้ากันได้กับ TensorFlow เวอร์ชันของคุณ

ตารางความเข้ากันได้

ตารางต่อไปนี้แสดงความเข้ากันได้ระหว่าง tensorflow_decision_forests และการขึ้นต่อกัน:

tensorflow_decision_forests เทนเซอร์โฟลว์
1.11.0 2.18.0
1.10.0 2.17.0
1.9.2 2.16.2
1.9.1 2.16.1
1.9.0 2.16.1
1.8.0 - 1.8.1 2.15.0
1.6.0 - 1.7.0 2.14.0
1.5.0 2.13.0
1.3.0 - 1.4.0 2.12.0
1.1.0 - 1.2.0 2.11.0
1.0.0 - 1.0.1 2.10.0 - 2.10.1
0.2.6 - 0.2.7 2.9.1
0.2.5 2.9
0.2.4 2.8
0.2.1 - 0.2.3 2.7
0.1.9 - 0.2.0 2.6
0.1.1 - 0.1.8 2.5
0.1.0 2.4
  • โซลูชัน #2: รวมฟังก์ชันการประมวลผลล่วงหน้าของคุณเข้ากับฟังก์ชันอื่นที่ บีบ อินพุต

ไม่ใช่ทุกรุ่นที่รองรับการฝึกอบรมแบบกระจายและกระจายกลยุทธ์

เว้นแต่จะระบุไว้ โมเดลจะได้รับการฝึกบนเครื่องเดียวและไม่เข้ากันกับกลยุทธ์การกระจาย ตัวอย่างเช่น GradientBoostedTreesModel ไม่รองรับการฝึกอบรมแบบกระจาย ในขณะที่ DistributedGradientBoostedTreesModel รองรับ

วิธีแก้ปัญหา:

  • ใช้โมเดลที่รองรับกลยุทธ์การกระจาย (เช่น DistributedGradientBoostedTreesModel ) หรือดาวน์สุ่มชุดข้อมูลของคุณเพื่อให้พอดีกับเครื่องเดียว

ไม่รองรับ GPU / TPU

TF-DF ไม่รองรับการฝึก GPU หรือ TPU อย่างไรก็ตาม การคอมไพล์ด้วยคำสั่ง AVX อาจทำให้การแสดงผลเร็วขึ้น

ไม่รองรับ model_to_estimator

TF-DF ไม่ได้ใช้ API ที่จำเป็นในการแปลงโมเดลที่ได้รับการฝึก/ไม่ผ่านการฝึกให้เป็นรูปแบบตัวประมาณค่า

โมเดลที่โหลดมีพฤติกรรมแตกต่างจากโมเดล Python

ในขณะที่นามธรรมโดย Keras API โมเดลที่สร้างอินสแตนซ์ใน Python (เช่นด้วย tfdf.keras.RandomForestModel() ) และโมเดลที่โหลดจากดิสก์ (เช่นด้วย tf_keras.models.load_model() ) สามารถทำงานแตกต่างออกไปได้ โดยเฉพาะอย่างยิ่ง โมเดลที่สร้างอินสแตนซ์ของ Python จะใช้การแปลงประเภทที่จำเป็นโดยอัตโนมัติ ตัวอย่างเช่น หากฟีดฟีเจอร์ float64 ไปยังโมเดลที่คาดหวังฟีเจอร์ float32 การแปลงนี้จะดำเนินการโดยปริยาย อย่างไรก็ตาม การแปลงดังกล่าวไม่สามารถทำได้สำหรับรุ่นที่โหลดจากดิสก์ ดังนั้นจึงเป็นสิ่งสำคัญที่ข้อมูลการฝึกอบรมและข้อมูลอนุมานจะต้องมีประเภทเดียวกันทุกประการ

การฆ่าเชื้อชื่อฟีเจอร์ Tensorflow

Tensorflow ฆ่าเชื้อชื่อฟีเจอร์และอาจแปลงเป็นตัวพิมพ์เล็ก เป็นต้น