Tensorflow操作:如何包含libtensorflow_framework.so?

时间:2017-12-20 12:55:43

标签: c++ c++11 ubuntu tensorflow

我按照本教程的说明操作: https://www.tensorflow.org/extend/adding_an_op#implement_the_gradient_in_python。 提供了以下评论:g++ -std=c++11 -shared zero_out.cc -o zero_out.so -fPIC -I$TF_INC -I$TF_INC/external/nsync/public -L$TF_LIB -ltensorflow_framework -O2

但链接器找不到-ltensorflow_framework(它应该是tensorflow_frameowork.so文件!?)

经过一些研究,我找到了以下链接:

我试图递归搜索sudo find /usr/. -name "tensorflow_framework.so"但我找不到任何东西。 Tensorflow肯定是通过anaconda安装的,我还从源代码克隆并编译了存储库。

如何找到包含-ltensorflow_framework的方法?

3 个答案:

答案 0 :(得分:2)

一个答案,我发现:

我已经通过anaconda2安装了我的python,当我激活我的存储库source activate <env>时,我总是试图找出TF_INC和TF_LIB。并且找不到任何~/anaconda2/envs/tensorflow/lib/python2.7/site-packages/tensorflow * .so文件

这次我使用shell命令source deactivate走出每个python环境,然后输入以下命令 python -c 'import tensorflow as tf; print(tf.sysconfig.get_lib())'

现在,我得到了一条不同的路径:~/anaconda2/lib/python2.7/site-packages/tensorflow,lib libtensorflow_framework.so所在的路径。

答案 1 :(得分:2)

就我而言,文件libtensorflow_framework.so.1存在于我的TF_LIB目录中,而不是libtensorflow_framework.so中。为了解决此问题,我必须创建一个符号链接,如下所示:

ln -s libtensorflow_framework.so.1 libtensorflow_framework.so

来源:Tensorflow NotFoundError: libtensorflow_framework.so: cannot open shared file or directory

答案 2 :(得分:0)

tensorflow_framework在Tensorflow 1.4.1之前不使用

当您从shell调用python时,请确保您正在调用正确的python:

TF_LIB = $(shell python -c'import tensorflow; print(tensorflow.sysconfig.get_lib())')

TF_LIB = $(shell python3 -c'import tensorflow; print(tensorflow.sysconfig.get_lib())')