TensorFlow C++接口编译及编译问题解决:windows+Cmake+vs2017
目录
首先要看什么样的TensorFlow是可以被编译的:
访问网址 https://tensorflow.google.cn/install/source_windows
另一篇博客,说明了一些选取TensorFlow版本的方法见:https://blog.****.net/h649070/article/details/107379029
例如,我看的时候,版本对应关系,这里需要注意编译器的版本,这个其实可能高点或者低一点儿的版本都是可以的,如果不想安装那么麻烦,可以先拿自己的环境试一试,说不定就过了,并不是不用推荐的就不能编译通过。
下载TensorFlow源码
源码下载直接上TensorFlow 官方git https://github.com/tensorflow/tensorflow ,选好自己要编译的分支版本;
网速不好可以晚上十点以后,,好像会快点;git也是可以断点下载的,可以用Chrome之类的浏览器来进行辅助,这一步看网速、拼人品;
安装Cmake
目测最新版本比较好;
swigwin-3.0.12或者更高版本
可能需要更高的版本,具体要看要求;
安装vs2017
主要是编译器版本,但是最要也是2015以上成功概率大一些;
GPU版本配置
cuda和CUDNN是要自己先安装好的,cmake的时候需要配置路径;要根据选取的TensorFlow版本需要的库的版本进行安装;
开始编译
建立一个你需要编译到的地方,例如一个build文件之类的;
打开cmak,TensorFlow-r1.10这个路径下面就是下载好的TensorFlow源码了,具体路径就这么配置build是要编译到的地方;
需要配置的就这些了,点击config 没问题,再generate,,,有什么问题,就是配置的问题,解决一下就好了;
目前能编译成功的是这个配置,其他的都按照常规配置就行,主要是TensorFlow下面的:
generate成功之后,就可以打开tensorflow.sln,利用vs2017进行生成。
最好直接选取release状态下,对项目进行生成,因为生成一次需要很多很多时间,而且CPU占用率会很高,也会影响其他应用的使用,最好在夜深人静的时候开始编译。
问题总结
1、TensorFlow generate时如果出现有的库路径找不到的情况,第一步先看看自己电脑上是否有这些库把相应的路径配置好即可,另外,如果本地没有这个库,可以先去掉该库试一试,如果能成功,可以先不用它,TensorFlow依赖库本身比较多,有一些库在我们使用的时候可能根本用不到。
2、在vs生成时,网络环境比较好的话,cmake可选的依赖项都可以选取的,因为在生成的时候这些依赖库需要实时下载。
3、TensorFlow grpc库异常解决
其中有一个叫GRPC的,是网络分布式部署的时候才用的库,超级大,不翻墙根本下载不下来,但是去掉它,又会有莫名其妙的错误,这个时候直接去掉它作为编译的依赖项。这时会出现错误,找到错误的地方,我这边在tf_c这个工程,出现未识别标识符,此时!!去掉报错的行,是的,直接去掉,再编译,成功!!
转载请留言征求作者同意