المشاكل المعروفة

تفضل YDF للمشاريع الجديدة

YDF هي مكتبة Google الجديدة لتدريب Decision Forests.

تعمل YDF على توسيع قوة TF-DF، حيث تقدم ميزات جديدة وواجهة برمجة تطبيقات مبسطة وأوقات تدريب أسرع ووثائق محدثة وتوافقًا محسنًا مع مكتبات ML الشائعة.

تم إصلاح بعض المشكلات المذكورة أدناه في YDF.

حزمة Windows Pip غير متوفرة

TensorFlow Decision Forests غير متوفر بعد كحزمة Windows Pip.

الحلول:

عدم التوافق مع Keras 3

التوافق مع Keras 3 لم يتم تنفيذه بعد. استخدم tf_keras أو إصدار TensorFlow قبل 2.16. بدلا من ذلك، استخدم ydf .

لم يتم اختباره لكوندا

على الرغم من أن TF-DF قد يعمل مع Conda، إلا أنه لم يتم اختباره ولا نحتفظ حاليًا بالحزم الموجودة على conda-forge.

عدم التوافق مع الإصدارات القديمة أو الليلية من TensorFlow

واجهة برمجة تطبيقات 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 com.tensorflow
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 بتنفيذ واجهات برمجة التطبيقات المطلوبة لتحويل نموذج مدرب/غير مدرب إلى تنسيق المقدر.

تتصرف النماذج المحملة بشكل مختلف عن نماذج بايثون.

أثناء استخلاصه بواسطة Keras API، يمكن للنموذج الذي تم إنشاء مثيل له في Python (على سبيل المثال، باستخدام tfdf.keras.RandomForestModel() ) والنموذج الذي تم تحميله من القرص (على سبيل المثال، مع tf_keras.models.load_model() ) أن يتصرفا بشكل مختلف. والجدير بالذكر أن نموذج Python الذي تم إنشاء مثيل له يطبق تلقائيًا تحويلات النوع الضرورية. على سبيل المثال، إذا تم تغذية ميزة float64 إلى نموذج يتوقع ميزة float32 ، فسيتم تنفيذ هذا التحويل ضمنيًا. ومع ذلك، مثل هذا التحويل غير ممكن للنماذج التي تم تحميلها من القرص. لذلك من المهم أن تكون بيانات التدريب وبيانات الاستدلال دائمًا من نفس النوع تمامًا.

تعقيم اسم ميزة Tensorflow

يقوم Tensorflow بتطهير أسماء الميزات وقد يقوم، على سبيل المثال، بتحويلها إلى أحرف صغيرة.