Masalah Umum

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:

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.