第一张图是我修改后的版本,第二张图是源码里给的
首先看makefile这个文件,我第一次报错的时候好像是找不到nvcc,、
然后我发现是cuda的路径不对,大家可以先看看自己服务器上cuda的路径在哪里。源码给的代码用的是cuda-9.0,我查询之后发现我的是cuda-10.0
接着又报错
找不到头文件,tensorflow的路径不对,可以通过 import tensorflow as tf ,tf.__path__来找tensorflow的路径
#tf_inc = /opt/conda/lib/python3.6/site-packages/tensorflow/include
#tf_lib = /opt/conda/lib/python3.6/site-packages/tensorflow/
可以看到被我注释的这两行,因为我一开始用的docker里的容器里的tensorflow是装在conda里的,注意一下用anaconda装的tensorflow一般都在site-packages里,而自己手动装的一般都在dist-packages里,不过我的报错问题不是因为这个,我以为是不能用conda里的tensorflow,然后换了个容器。
tensorflow路径调好以后,又接着报错。。
这个报错折腾了我一大晚上都没弄好,tensorflow_framework.so.这个动态库没有编译成功,为啥?
在网上看了很多教程,很多次尝试失败后,发现是文件名的问题
忽略那个so.2,,,是我弄软连接的时候弄的
可以看到我的tensorflow的路径下明明是有libtensorflow_framework.so.1这个库的
然后我把文件名改成libtensorflow_framework.so
再重新make,居然就成功了!
参考博客:
https://github.com/tensorflow/tensorflow/issues/30965