مشکلات شناخته شده

موتور زیربنایی پشت الگوریتم‌های جنگل‌های تصمیم که توسط TensorFlow Decision Forests استفاده می‌شود، به‌طور گسترده‌ای آزمایش شده‌اند. این فایل برخی از مشکلات شناخته شده را فهرست می کند.

همچنین به راهنمای مهاجرت برای رفتاری که با الگوریتم های دیگر متفاوت است مراجعه کنید.

بسته Windows Pip در دسترس نیست

TensorFlow Decision Forests هنوز به عنوان بسته Windows Pip در دسترس نیست.

راه حل ها:

  • راه حل شماره 1: Windows Subsystem for Linux (WSL) را روی دستگاه ویندوز خود نصب کنید و دستورالعمل های لینوکس را دنبال کنید.

ناسازگاری با Keras 3

سازگاری با Keras 3 هنوز اجرا نشده است. از tf_keras یا نسخه TensorFlow قبل از 2.16 استفاده کنید.

برای کوندا آزمایش نشده است

در حالی که 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.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 های مورد نیاز برای تبدیل یک مدل آموزش دیده/ آموزش ندیده به فرمت برآوردگر را پیاده سازی نمی کند.

مدل های بارگذاری شده رفتار متفاوتی با مدل های پایتون دارند.

در حالی که توسط Keras API انتزاع شده است، یک مدل نمونه سازی شده در پایتون (به عنوان مثال، با tfdf.keras.RandomForestModel() ) و یک مدل بارگذاری شده از دیسک (مثلا با tf_keras.models.load_model() ) می توانند رفتار متفاوتی داشته باشند. قابل ذکر است، یک مدل نمونه سازی شده پایتون به طور خودکار تبدیل های لازم را اعمال می کند. برای مثال، اگر یک ویژگی float64 به مدلی که انتظار ویژگی float32 دارد، داده شود، این تبدیل به طور ضمنی انجام می شود. با این حال، چنین تبدیلی برای مدل های بارگذاری شده از دیسک امکان پذیر نیست. بنابراین مهم است که داده های آموزشی و داده های استنتاج همیشه دقیقاً از یک نوع باشند.

پاکسازی نام ویژگی تنسورفلو

Tensorflow نام ویژگی ها را ضد عفونی می کند و ممکن است، برای مثال، آنها را به حروف کوچک تبدیل کند.