已知問題

TensorFlow 決策樹森林所使用的決策樹森林演算法底層引擎,已通過廣泛的生產環境測試。本檔案列出一些已知問題。

另請參閱遷移指南,瞭解與其他演算法不同的行為。

Windows Pip 套件尚不可用

TensorFlow 決策樹森林尚無法以 Windows Pip 套件形式提供。

替代方案

與 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 會清理特徵名稱,例如,可能會將其轉換為小寫。