Как установить «Слой ансамбля деревьев» в Kaggle Notebook

#python #tensorflow #keras #pip #kaggle

#python #tensorflow #keras #pip #kaggle

Вопрос:

Я хотел бы попробовать следующий код в Kaggle Notebook, но я не смог найти способ установить tf_trees.

 from tensorflow import keras
from tf_trees import TEL

tree_layer = TEL(output_logits_dim=2, trees_num=10, depth=3)

model = keras.Sequential()
model.add(keras.layers.BatchNormalization())
model.add(tree_layer)
 

Кажется, что tf_trees не может быть установлен с помощью !pip install

Я был бы признателен, если бы кто-нибудь мог предложить решение. Спасибо.

Итак: https://github.com/google-research/google-research/tree/master/tf_trees

Комментарии:

1. Не могли бы вы поделиться, почему метод установки, упомянутый на странице github, на которую вы ссылаетесь, не работает для вас?

2. Проблема в том, что упомянутые решения на GitHub не могут быть запущены в Kaggle Notebook.

Ответ №1:

сначала включите поддержку Интернета и клонируйте репозиторий google-research с github:

 !git clone https://github.com/google-research/google-research.git
 

затем нам понадобятся параметры компиляции и компоновки для g , поэтому запустите следующие фрагменты кода:

 import tensorflow as tf; 
print(" ".join(tf.sysconfig.get_compile_flags()))
 

и

 import tensorflow as tf; 
print(" ".join(tf.sysconfig.get_link_flags()))
 

для моего ноутбука я получил следующие флаги:

 -I/opt/conda/lib/python3.7/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0
-L/opt/conda/lib/python3.7/site-packages/tensorflow -l:libtensorflow_framework.so.2
 

после этого просто замените переменные ${TF_CFLAGS[@]} и ${TF_LFLAGS[@]} на вышеуказанные выходные данные

 !g   -std=c  11 -shared google-research/tf_trees/neural_trees_ops.cc google-research/tf_trees/neural_trees_kernels.cc google-research/tf_trees/neural_trees_helpers.cc -o google-research/tf_trees/neural_trees_ops.so -fPIC -I/opt/conda/lib/python3.7/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -L/opt/conda/lib/python3.7/site-packages/tensorflow -l:libtensorflow_framework.so.2 -O2
 

наконец, нам нужно добавить системный путь

 import sys
sys.path.insert(1, '/kaggle/working/google-research')
 

и запустите свой фрагмент

 from tensorflow import keras
from tf_trees import TEL

tree_layer = TEL(output_logits_dim=2, trees_num=10, depth=3)

model = keras.Sequential()
model.add(keras.layers.BatchNormalization())
model.add(tree_layer)
 

Комментарии:

1. Спасибо за ответ, теперь он работает у меня.