Lebih memilih YDF untuk proyek baru
YDF adalah perpustakaan baru Google untuk melatih Decision Forests.
YDF memperluas kekuatan TF-DF, menawarkan fitur-fitur baru, API yang disederhanakan, waktu pelatihan yang lebih cepat, dokumentasi yang diperbarui, dan peningkatan kompatibilitas dengan perpustakaan ML populer.
Beberapa masalah yang disebutkan di bawah telah diperbaiki di YDF.
Paket Windows Pip tidak tersedia
TensorFlow Decision Forests belum tersedia sebagai paket Windows Pip.
Solusi:
- Solusi #1: Instal Subsistem Windows untuk Linux (WSL) di mesin Windows Anda dan ikuti instruksi Linux.
Ketidakcocokan dengan Keras 3
Kompatibilitas dengan Keras 3 belum diterapkan. Gunakan tf_keras atau versi TensorFlow sebelum 2.16. Alternatifnya, gunakan ydf .
Belum diuji untuk conda
Meskipun TF-DF mungkin berfungsi dengan Conda, ini belum diuji dan saat ini kami tidak memelihara paket di conda-forge.
Ketidakcocokan dengan TensorFlow versi lama atau malam
ABI TensorFlow tidak kompatibel di antara rilis. Karena TF-DF mengandalkan operasi TensorFlow C++ kustom, setiap versi TF-DF terikat dengan versi TensorFlow tertentu. Versi TF-DF yang terakhir dirilis selalu dikaitkan dengan versi TensorFlow yang terakhir dirilis.
Karena alasan ini, versi TF-DF saat ini mungkin tidak kompatibel dengan versi lama atau TensorFlow versi malam.
Jika menggunakan versi TF dan TF-DF yang tidak kompatibel, Anda akan melihat kesalahan samar seperti:
tensorflow_decision_forests/tensorflow/ops/training/training.so: undefined symbol: _ZN10tensorflow11GetNodeAttrERKNS_9AttrSliceEN4absl14lts_2020_09_2311string_viewEPSs
- Gunakan versi TF-DF yang kompatibel dengan versi TensorFlow Anda.
Tabel kompatibilitas
Tabel berikut menunjukkan kompatibilitas antara tensorflow_decision_forests
dan dependensinya:
tensorflow_decision_forests | aliran tensor |
---|---|
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 |
- Solusi #2: Gabungkan fungsi prapemrosesan Anda ke dalam fungsi lain yang memasukkan inputnya.
Tidak semua model mendukung pelatihan terdistribusi dan strategi distribusi
Kecuali jika ditentukan, model dilatih pada satu mesin dan tidak kompatibel dengan strategi distribusi. Misalnya GradientBoostedTreesModel
tidak mendukung pelatihan terdistribusi sedangkan DistributedGradientBoostedTreesModel
mendukungnya.
Solusi:
- Gunakan model yang mendukung strategi distribusi (misalnya
DistributedGradientBoostedTreesModel
), atau turunkan sampel kumpulan data Anda agar muat di satu mesin.
Tidak ada dukungan untuk GPU/TPU.
TF-DF tidak mendukung pelatihan GPU atau TPU. Namun, mengompilasi dengan instruksi AVX dapat mempercepat penayangan.
Tidak ada dukungan untuk model_to_estimator
TF-DF tidak mengimplementasikan API yang diperlukan untuk mengonversi model terlatih/tidak terlatih ke format estimator.
Model yang dimuat berperilaku berbeda dari model Python.
Saat diabstraksi oleh Keras API, model yang dibuat dengan Python (misalnya, dengan tfdf.keras.RandomForestModel()
) dan model yang dimuat dari disk (misalnya, dengan tf_keras.models.load_model()
) dapat berperilaku berbeda. Khususnya, model yang dibuat dengan Python secara otomatis menerapkan konversi tipe yang diperlukan. Misalnya, jika fitur float64
dimasukkan ke model yang mengharapkan fitur float32
, konversi ini dilakukan secara implisit. Namun, konversi seperti itu tidak dimungkinkan untuk model yang dimuat dari disk. Oleh karena itu, data pelatihan dan data inferensi harus selalu memiliki tipe yang sama persis.
Sanitasi nama fitur Tensorflow
Tensorflow membersihkan nama fitur dan mungkin, misalnya, mengonversinya menjadi huruf kecil.