首页 > 解决方案 > 如何在 Kaggle Notebook 上安装“Tree Ensemble Layer”

问题描述

我想在 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)

似乎无法使用 !pip install 安装 tf_trees

如果有人可以提出解决方案,我将不胜感激。谢谢你。

来源:https ://github.com/google-research/google-research/tree/master/tf_trees

标签: pythontensorflowkeraspipkaggle

解决方案


首先打开 Internet 支持并从 github 克隆 google-research 存储库:

!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)

推荐阅读