המנוע הבסיסי מאחורי האלגוריתמים של יערות ההחלטה המשמשים את TensorFlow Decision Forests נבדקו בהרחבה. קובץ זה מפרט כמה מהבעיות הידועות.
ראה גם את מדריך ההגירה להתנהגות שונה מאלגוריתמים אחרים.
חבילת Windows Pip אינה זמינה
TensorFlow Decision Forests עדיין לא זמין כחבילת Windows Pip.
דרכים לעקיפת הבעיה:
- פתרון מס' 1: התקן את מערכת המשנה של Windows עבור לינוקס (WSL) במחשב Windows שלך ופעל לפי הוראות לינוקס.
אי התאמה ל-Keras 3
תאימות עם Keras 3 עדיין לא מיושמת. השתמש ב-tf_keras או בגרסת TensorFlow לפני 2.16. לחלופין, השתמש ב-ydf .
לא נבדק עבור קונדה
למרות ש-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.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.
בזמן שהוא מופשט על ידי ה-API של Keras, מודל המופק ב-Python (למשל, עם tfdf.keras.RandomForestModel()
) ומודל שנטען מהדיסק (למשל, עם tf_keras.models.load_model()
) יכולים להתנהג אחרת. יש לציין, מודל מופע של Python מחיל באופן אוטומטי המרות סוגים נחוצות. לדוגמה, אם תכונת float64
מוזנת למודל המצפה לתכונה float32
, המרה זו מבוצעת באופן מרומז. עם זאת, המרה כזו אינה אפשרית עבור דגמים שנטענו מדיסק. לכן חשוב שנתוני האימון ונתוני ההסקה יהיו תמיד מאותו סוג בדיוק.
חיטוי שם תכונה Tensorflow
Tensorflow מחטא את שמות התכונות ויכול, למשל, להמיר אותם לאותיות קטנות.