Các vấn đề đã biết

Ưu tiên YDF cho các dự án mới

YDF là thư viện mới của Google để đào tạo Rừng quyết định.

YDF mở rộng sức mạnh của TF-DF, cung cấp các tính năng mới, API đơn giản hóa, thời gian đào tạo nhanh hơn, tài liệu cập nhật và nâng cao khả năng tương thích với các thư viện ML phổ biến.

Một số vấn đề được đề cập bên dưới đã được khắc phục trong YDF.

Gói Windows Pip không có sẵn

Rừng quyết định TensorFlow chưa có sẵn dưới dạng gói Windows Pip.

Cách giải quyết:

Không tương thích với Keras 3

Khả năng tương thích với Keras 3 chưa được triển khai. Sử dụng tf_keras hoặc phiên bản TensorFlow trước 2.16. Ngoài ra, hãy sử dụng ydf .

Chưa được kiểm tra conda

Mặc dù TF-DF có thể hoạt động với Conda nhưng điều này chưa được thử nghiệm và hiện tại chúng tôi không duy trì các gói trên conda-forge.

Không tương thích với các phiên bản cũ hoặc hàng đêm của TensorFlow

ABI của TensorFlow không tương thích giữa các bản phát hành. Vì TF-DF dựa trên các hoạt động TensorFlow C++ tùy chỉnh nên mỗi phiên bản TF-DF được gắn với một phiên bản TensorFlow cụ thể. Phiên bản TF-DF được phát hành gần đây nhất luôn gắn liền với phiên bản TensorFlow được phát hành gần đây nhất.

Vì những lý do này, phiên bản hiện tại của TF-DF có thể không tương thích với các phiên bản cũ hơn hoặc với bản dựng TensorFlow hàng đêm.

Nếu sử dụng các phiên bản TF và TF-DF không tương thích, bạn sẽ thấy các lỗi khó hiểu như:

tensorflow_decision_forests/tensorflow/ops/training/training.so: undefined symbol: _ZN10tensorflow11GetNodeAttrERKNS_9AttrSliceEN4absl14lts_2020_09_2311string_viewEPSs
  • Sử dụng phiên bản TF-DF tương thích với phiên bản TensorFlow của bạn.

Bảng tương thích

Bảng sau đây cho thấy khả năng tương thích giữa tensorflow_decision_forests và các phần phụ thuộc của nó:

tensorflow_decision_forests dòng chảy căng thẳng
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
  • Giải pháp số 2: Gói chức năng tiền xử lý của bạn vào một chức năng khác để nén đầu vào của nó.

Không phải tất cả các mô hình đều hỗ trợ chiến lược đào tạo và phân phối phân tán

Trừ khi được chỉ định, các mô hình được đào tạo trên một máy duy nhất và không tương thích với các chiến lược phân phối. Ví dụ: GradientBoostedTreesModel không hỗ trợ đào tạo phân tán trong khi DistributedGradientBoostedTreesModel thì có.

Cách giải quyết:

  • Sử dụng mô hình hỗ trợ chiến lược phân phối (ví dụ: DistributedGradientBoostedTreesModel ) hoặc lấy mẫu tập dữ liệu của bạn để phù hợp trên một máy.

Không hỗ trợ GPU/TPU.

TF-DF không hỗ trợ đào tạo GPU hoặc TPU. Tuy nhiên, việc biên dịch bằng hướng dẫn AVX có thể tăng tốc độ phân phối.

Không hỗ trợ cho model_to_estimator

TF-DF không triển khai các API cần thiết để chuyển đổi mô hình đã được đào tạo/chưa được đào tạo sang định dạng công cụ ước tính.

Các mô hình được tải hoạt động khác với các mô hình Python.

Trong khi được API Keras trừu tượng hóa, một mô hình được khởi tạo bằng Python (ví dụ: với tfdf.keras.RandomForestModel() ) và một mô hình được tải từ đĩa (ví dụ: với tf_keras.models.load_model() ) có thể hoạt động khác nhau. Đáng chú ý, mô hình khởi tạo Python sẽ tự động áp dụng các chuyển đổi loại cần thiết. Ví dụ: nếu một tính năng float64 được cung cấp cho một mô hình mong đợi tính năng float32 , thì việc chuyển đổi này được thực hiện ngầm. Tuy nhiên, việc chuyển đổi như vậy không thể thực hiện được đối với các mô hình được tải từ đĩa. Do đó, điều quan trọng là dữ liệu huấn luyện và dữ liệu suy luận luôn có cùng loại.

Khử trùng tên tính năng Tensorflow

Tensorflow vệ sinh các tên tính năng và chẳng hạn, có thể chuyển đổi chúng thành chữ thường.