YDF را برای پروژه های جدید ترجیح دهید
YDF کتابخانه جدید گوگل برای آموزش Decision Forests است.
YDF قدرت TF-DF را گسترش می دهد، ویژگی های جدید، API ساده، زمان آموزش سریع تر، اسناد به روز شده و سازگاری پیشرفته با کتابخانه های محبوب ML را ارائه می دهد.
برخی از مشکلات ذکر شده در زیر در YDF رفع شده است.
بسته Windows Pip در دسترس نیست
TensorFlow Decision Forests هنوز به عنوان بسته Windows Pip در دسترس نیست.
راه حل ها:
- راه حل شماره 1: Windows Subsystem for Linux (WSL) را روی دستگاه ویندوز خود نصب کنید و دستورالعمل های لینوکس را دنبال کنید.
ناسازگاری با 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.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 های مورد نیاز برای تبدیل یک مدل آموزش دیده/ آموزش ندیده به فرمت برآوردگر را پیاده سازی نمی کند.
مدل های بارگذاری شده رفتار متفاوتی با مدل های پایتون دارند.
در حالی که توسط Keras API انتزاع شده است، یک مدل نمونه سازی شده در پایتون (به عنوان مثال، با tfdf.keras.RandomForestModel()
) و یک مدل بارگذاری شده از دیسک (مثلا با tf_keras.models.load_model()
) می توانند رفتار متفاوتی داشته باشند. قابل ذکر است، یک مدل نمونه سازی شده پایتون به طور خودکار تبدیل های لازم را اعمال می کند. برای مثال، اگر یک ویژگی float64
به مدلی که انتظار ویژگی float32
را دارد، داده شود، این تبدیل به طور ضمنی انجام می شود. با این حال، چنین تبدیلی برای مدل های بارگذاری شده از دیسک امکان پذیر نیست. بنابراین مهم است که داده های آموزشی و داده های استنتاج همیشه دقیقاً از یک نوع باشند.
پاکسازی نام ویژگی تنسورفلو
Tensorflow نام ویژگی ها را ضد عفونی می کند و ممکن است، برای مثال، آنها را به حروف کوچک تبدیل کند.