ชอบ YDF สำหรับโครงการใหม่
YDF เป็นห้องสมุดใหม่ของ Google เพื่อฝึกอบรม Decision Forests
YDF ขยายขีดความสามารถของ TF-DF โดยนำเสนอคุณสมบัติใหม่, API ที่เรียบง่าย, เวลาการฝึกอบรมที่เร็วขึ้น, เอกสารที่อัปเดต และความเข้ากันได้ที่เพิ่มขึ้นกับไลบรารี ML ยอดนิยม
ปัญหาบางอย่างที่กล่าวถึงด้านล่างนี้ได้รับการแก้ไขใน YDF
แพ็คเกจ Windows Pip ไม่พร้อมใช้งาน
TensorFlow Decision Forests ยังไม่มีให้บริการเป็นแพ็คเกจ Windows Pip
วิธีแก้ปัญหา:
- โซลูชัน #1: ติดตั้ง ระบบย่อย Windows สำหรับ Linux (WSL) บนเครื่อง Windows ของคุณและทำตามคำแนะนำของ Linux
ความเข้ากันไม่ได้กับ 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 ฆ่าเชื้อชื่อฟีเจอร์และอาจแปลงเป็นตัวพิมพ์เล็ก เป็นต้น