Tensorflow Op: 如何包含 libtensorflow_framework.so?

6
我按照这个教程的说明进行操作: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的方法?

如果以上方法都不起作用,请尝试这个链接:https://dev59.com/i1MI5IYBdhLWcg3wLYMu#73868902 - meowmeow
4个回答

4

3

我找到了一个解决方案:

我通过anaconda2安装了python,并在激活我的repository时尝试查找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


0
更清晰地说:
1.从python -c 'import tensorflow as tf; print(tf.sysconfig.get_lib())'获取路径,其中目录中有一个libtensorflow_framework.so.1。例如:/home/.../lib/python3.7/site-packages/tensorflow_core/libtensorflow_framework.so.1 2.运行ln -s /home/.../lib/python3.7/site-packages/tensorflow_core/libtensorflow_framework.so.1 /home/.../lib/python3.7/site-packages/tensorflow_core/libtensorflow_framework.so

0

tensorflow_framework在Tensorflow 1.4.1之前未被使用。

当您从shell调用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())')


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接