TensorFlow 決策樹森林所使用的決策樹森林演算法底層引擎,已通過廣泛的生產環境測試。本檔案列出一些已知問題。
另請參閱遷移指南,瞭解與其他演算法不同的行為。
Windows Pip 套件尚不可用
TensorFlow 決策樹森林尚無法以 Windows Pip 套件形式提供。
替代方案
- 解決方案 #1: 在您的 Windows 電腦上安裝 Windows Subsystem for Linux (WSL),並按照 Linux 指示操作。
與 Keras 3 不相容
與 Keras 3 的相容性尚未實作。請使用 tf_keras 或 2.16 之前的 TensorFlow 版本。
未經 conda 測試
雖然 TF-DF 可能適用於 Conda,但這尚未經過測試,且我們目前未在 conda-forge 上維護套件。
與舊版或 TensorFlow nightly 版本不相容
TensorFlow 的 ABI 在各版本之間不相容。由於 TF-DF 仰賴自訂 TensorFlow C++ 運算元,因此每個 TF-DF 版本都與特定 TensorFlow 版本相關聯。最新發佈的 TF-DF 版本始終與最新發佈的 TensorFlow 版本相關聯。
基於這些原因,目前的 TF-DF 版本可能與舊版或 TensorFlow nightly 版本不相容。
如果使用不相容的 TF 和 TF-DF 版本,您會看到類似以下的難以理解的錯誤
tensorflow_decision_forests/tensorflow/ops/training/training.so: undefined symbol: _ZN10tensorflow11GetNodeAttrERKNS_9AttrSliceEN4absl14lts_2020_09_2311string_viewEPSs
- 請使用與您的 TensorFlow 版本相容的 TF-DF 版本。
相容性表格
下表顯示 tensorflow_decision_forests
及其依附元件之間的相容性
tensorflow_decision_forests | tensorflow |
---|---|
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。
載入的模型行為與 Python 模型不同。
雖然已由 Keras API 抽象化,但在 Python 中例項化的模型 (例如,使用 tfdf.keras.RandomForestModel()
) 和從磁碟載入的模型 (例如,使用 tf_keras.models.load_model()
) 行為可能有所不同。值得注意的是,Python 例項化的模型會自動套用必要的類型轉換。例如,如果將 float64
特徵饋送到預期 float32
特徵的模型,則會隱含執行此轉換。但是,從磁碟載入的模型無法進行此類轉換。因此,訓練資料和推論資料務必始終具有完全相同的類型。
Tensorflow 特徵名稱清理
Tensorflow 會清理特徵名稱,例如,可能會將其轉換為小寫。