Problemas conhecidos

O mecanismo subjacente aos algoritmos de florestas de decisão usados ​​pelo TensorFlow Decision Forests foi extensivamente testado em produção. Este arquivo lista alguns dos problemas conhecidos.

Consulte também o guia de migração para saber o comportamento diferente de outros algoritmos.

O pacote Windows Pip não está disponível

O TensorFlow Decision Forests ainda não está disponível como um pacote Windows Pip.

Soluções alternativas:

Incompatibilidade com versões antigas ou noturnas do TensorFlow

O TensorFlow ABI não é compatível entre versões. Como o TF-DF depende de operações C++ personalizadas do TensorFlow, cada versão do TF-DF está vinculada a uma versão específica do TensorFlow. A última versão lançada do TF-DF está sempre vinculada à última versão lançada do TensorFlow.

Por motivos, a versão atual do TF-DF pode não ser compatível com versões mais antigas ou com a compilação noturna do TensorFlow.

Se estiver usando versões incompatíveis de TF e TF-DF, você verá erros enigmáticos como:

tensorflow_decision_forests/tensorflow/ops/training/training.so: undefined symbol: _ZN10tensorflow11GetNodeAttrERKNS_9AttrSliceEN4absl14lts_2020_09_2311string_viewEPSs
  • Use a versão do TF-DF compatível com sua versão do TensorFlow.

Observe que o TF-DF não é compatível com Keras 3 no momento.

Tabela de compatibilidade

A tabela a seguir mostra a compatibilidade entre tensorflow_decision_forests e suas dependências:

tensorflow_decision_forests fluxo tensor
1.6.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
  • Solução nº 2: envolva sua função de pré-processamento em outra função que comprima suas entradas.

Nem todos os modelos suportam treinamento distribuído e estratégias de distribuição

A menos que especificado, os modelos são treinados em uma única máquina e não são compatíveis com estratégias de distribuição. Por exemplo, o GradientBoostedTreesModel não oferece suporte ao treinamento distribuído, enquanto DistributedGradientBoostedTreesModel oferece.

Soluções alternativas:

  • Use um modelo que suporte estratégias de distribuição (por exemplo, DistributedGradientBoostedTreesModel ) ou reduza a resolução do seu conjunto de dados para que ele caiba em uma única máquina.

Sem suporte para GPU/TPU.

TF-DF não suporta treinamento de GPU ou TPU. A compilação com instruções AVX, entretanto, pode acelerar a veiculação.

Não há suporte para model_to_estimator

O TF-DF não implementa as APIs necessárias para converter um modelo treinado/não treinado para o formato de estimador.

Os modelos carregados se comportam de maneira diferente dos modelos Python.

Embora abstraído pela API Keras, um modelo instanciado em Python (por exemplo, com tfdf.keras.RandomForestModel() ) e um modelo carregado do disco (por exemplo, com tf.keras.models.load_model() ) podem se comportar de maneira diferente. Notavelmente, um modelo instanciado em Python aplica automaticamente as conversões de tipo necessárias. Por exemplo, se um recurso float64 for alimentado a um modelo que espera um recurso float32 , essa conversão será executada implicitamente. Contudo, tal conversão não é possível para modelos carregados do disco. Portanto, é importante que os dados de treinamento e os dados de inferência tenham sempre exatamente o mesmo tipo.

Limpeza de nome de recurso do Tensorflow

O Tensorflow limpa nomes de recursos e pode, por exemplo, convertê-los em letras minúsculas.