Problemas conocidos

El motor subyacente detrás de los algoritmos de bosques de decisión utilizados por TensorFlow Decision Forests se ha probado exhaustivamente en producción. Este archivo enumera algunos de los problemas conocidos.

Consulte también la guía de migración para conocer el comportamiento diferente al de otros algoritmos.

El paquete Windows Pip no está disponible

TensorFlow Decision Forests aún no está disponible como paquete Windows Pip.

Soluciones alternativas:

Incompatibilidad con Keras 3

La compatibilidad con Keras 3 aún no está implementada. Utilice tf_keras o una versión de TensorFlow anterior a la 2.16.

No probado para conda

Si bien TF-DF podría funcionar con Conda, esto no está probado y actualmente no mantenemos paquetes en conda-forge.

Incompatibilidad con versiones antiguas o nocturnas de TensorFlow

La ABI de TensorFlow no es compatible entre versiones. Debido a que TF-DF se basa en operaciones personalizadas de TensorFlow C++, cada versión de TF-DF está vinculada a una versión específica de TensorFlow. La última versión lanzada de TF-DF siempre está vinculada a la última versión lanzada de TensorFlow.

Por estos motivos, es posible que la versión actual de TF-DF no sea compatible con versiones anteriores o con la compilación nocturna de TensorFlow.

Si utiliza versiones incompatibles de TF y TF-DF, verá errores crípticos como:

tensorflow_decision_forests/tensorflow/ops/training/training.so: undefined symbol: _ZN10tensorflow11GetNodeAttrERKNS_9AttrSliceEN4absl14lts_2020_09_2311string_viewEPSs
  • Utilice la versión de TF-DF que sea compatible con su versión de TensorFlow.

tabla de compatibilidad

La siguiente tabla muestra la compatibilidad entre tensorflow_decision_forests y sus dependencias:

tensorflow_decision_forests flujo tensor
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
  • Solución #2: Envuelva su función de preprocesamiento en otra función que comprima sus entradas.

No todos los modelos admiten capacitación distribuida y distribuyen estrategias.

A menos que se especifique, los modelos se entrenan en una sola máquina y no son compatibles con las estrategias de distribución. Por ejemplo, GradientBoostedTreesModel no admite el entrenamiento distribuido, mientras que DistributedGradientBoostedTreesModel sí lo hace.

Soluciones alternativas:

  • Utilice un modelo que admita estrategias de distribución (por ejemplo, DistributedGradientBoostedTreesModel ), o reduzca la muestra de su conjunto de datos para que quepa en una sola máquina.

Sin soporte para GPU/TPU.

TF-DF no admite entrenamiento de GPU o TPU. Sin embargo, compilar con instrucciones AVX puede acelerar la publicación.

No hay soporte para model_to_estimator

TF-DF no implementa las API necesarias para convertir un modelo entrenado/no entrenado al formato de estimador.

Los modelos cargados se comportan de manera diferente a los modelos de Python.

Si bien está abstraído por la API de Keras, un modelo instanciado en Python (por ejemplo, con tfdf.keras.RandomForestModel() ) y un modelo cargado desde el disco (por ejemplo, con tf_keras.models.load_model() ) pueden comportarse de manera diferente. En particular, un modelo instanciado de Python aplica automáticamente las conversiones de tipos necesarias. Por ejemplo, si se envía una característica float64 a un modelo que espera una característica float32 , esta conversión se realiza implícitamente. Sin embargo, dicha conversión no es posible para los modelos cargados desde el disco. Por lo tanto, es importante que los datos de entrenamiento y los datos de inferencia sean siempre exactamente del mismo tipo.

Desinfección del nombre de la función Tensorflow

Tensorflow desinfecta los nombres de las funciones y puede, por ejemplo, convertirlos a minúsculas.