失败的一次经历:c++调用tensorflow模型——从头开始配置

一直在python下调用tensorflow模型进行测试,因工作需求需要在C++测试数据。参考了很多资料放两个讲的比较完整的:

https://blog.csdn.net/jiugeshao/article/details/79144438

https://blog.csdn.net/dageda1991/article/details/79721333

先放一下所用到的软件及版本:

0、win10系统,显卡是NIVIDIA Geforce MX150

1、python 3.6.0 (Anaconda 4.3.1)

2、tensorflow 1.5.0

3、cmake 3.7.2

4、swigwin-4.0.2

好了,开始进入正题,一步一步进行安装。

一、首先下载tensorflow 1.5.0源码,这里可以找到各个版本可以根据自己需要下载,我原来训练一直用的1.5.0因此就用这个了: https://github.com/tensorflow/tensorflow/releases/tag/v1.5.0 

二、下载cmake文件,https://cmake.org/files/,我下的msi文件,然后点击安装就可以。

三、下载swigwin,https://sourceforge.net/projects/swig/files/swigwin/swigwin-4.0.2/swigwin-4.0.2.zip/download?use_mirror=jaist ,下载完解压不用安装就能用。

四、打开cmake/bin文件夹下cmake-gui.exe,如下图所示把上面两个路径配置一下。build是自己新建的文件夹用来存放编译后文件。点击Configure,可能会出错,把SWIG文件路径换成自己的再次点击Configure就没错了。这里我还遇到一个错误,就是安装VS2015的时候选择的默认安装,结果竟然没选VC++编译器,这里就报错找不到CL.exe的错误,重新安装VS把VC++环境勾上就可以了。Configure没错以后点击Generate完成。(如果只编译CPU版本的就把GPU勾选去掉)

失败的一次经历:c++调用tensorflow模型——从头开始配置_第1张图片

五、打开上一步Cmake新建的build文件夹,此时里面有tensorflow.sln,以管理员运行VS2015打开项目如下:

失败的一次经历:c++调用tensorflow模型——从头开始配置_第2张图片

首先把项目属性改成Release/X64,然后将前5个以下划线开头的项目属性修改一下,方法:右击项目→属性(R)→配置属性→链接器→常规→附加库目录,添加$(SolutionDir)$(Configuration)。然后按照工具(T)→选项(O)→项目和解决方案→生成并运行,将最大项目并行生成数改成1,防止编译导致内存耗尽。 

接下来选择ALL_BUILD生成解决方案,它在编译过程中会自动从google下载很多包,我连不上网络所以有很多download failure 的错误,查了一些资料发现可以事先把这些包下下来,具体是:按照编译出错的连接把文件下下来放到cmake/build/downloads文件下,如下图所示我一共下了这些文件,然后根据下的这些包的名字,在cmake目录下找到对应文件夹,如cmake/farmhash/src/farmhash-stamp/download-farmhash.cmake,把该文件内容清空,这样编译过程中就不会从网上下载这些包了。(cub、eigen、farmhash、fft2d、gemmlowp、gif、jpeg、lmdb、png、sqlite)

失败的一次经历:c++调用tensorflow模型——从头开始配置_第3张图片

六、编译到这一步,还是有很多错误,下面一一记录下解决方法:

失败的一次经历:c++调用tensorflow模型——从头开始配置_第4张图片

失败的一次经历:c++调用tensorflow模型——从头开始配置_第5张图片

先单独对"tf_core_kernels"  项目编译看看,编译完还有这个错误

Then,单独编译tensorflow_static项目,出现如下错误,

失败的一次经历:c++调用tensorflow模型——从头开始配置_第6张图片

到这里怎么编译都通不过了,好像是下的tensorflow1.5.0里面源码有缺失???cmake失败然后转用bazel编译仍然报错,最后用opencv4.0.0里自带模块调用但能用的模型有限制只有那几个,还是得自己编译库文件,先搁置几天后面再弄吧,,,,,后面把python下训练的模型导出成pb类型,以及用matlab调用python测试也整理一下。

你可能感兴趣的:(tensorflow,c++)