win10 C++编译tensorflow动态库

本文分享如何将github上的tensorflow源码编译成动态库即.dll文件,以实现使用C++接口调用训练好的.pb模型文件。

 

系统环境:win10

tensorflow版本:r1.10

vs版本:VS2015 update3

cmake版本:3.6.3

swigwin版本:3.0.10

cuda版本:9.0

cudnn版本:7.0

git版本:2.9.2

注:将cmake.exe与swig.exe所在目录添加至系统环境变量

       本文编译的是gpu版本,cpu版本应该大同小异。

       内存要求,越大越好,最少16g

 

编译前请正确安装以上软件,cuda及cudnn的安装可参考我以前写的一篇文章。

一、下载tensorflow源码

请自行至github搜索tensorflow,注意选择r1.10分支,下载并解压

在 tensorflow-r1.10/tensorflow/contrib/cmake 路径下新建build文件夹

二、修改文件

修改 tensorflow/contrib/cmake/external/ 路径下的grpc.cmake文件

将位于 18 行 GRPC_URL 后的链接改为 https://github.com/lzkmylz/grpc  

将位于 20 行 GRPC_TAG 后的校验码改为 4446434eab7bfa9c7af000fc043ce9ecc267efdd 

因为编译时需要从链接地址下载资源,原链接资源被删除,故需修改重新指向其他资源。

三、生成.sln工程

打开cmake.gui

选择源码目录,即(一)中提到的cmake文件夹的绝对路径

选择生成工程存放的路径,即新建的build文件夹路径 

勾选grouped与advanced

点击configure

勾选 tensorflow_ENABLE_GPU 与 tensorflow_BUILD_SHARED_LIB

再次configure,直至没有红色的配置项,然后点击generate

四、编译

打开 VS2015 x64 x86 兼容工具命令提示符

切换至build目录

键入tensorflow.sln回车即打开工程

切换生成模式至Release(非常重要,因为tensorflow只支持Release与RelwithDebuginfo两种生成模式)

将 $(SolutionDir) 添加到 tf_core_kernels 项目的包含目录中 

给最上面这五个前面带下划线的项目的附加库目录添加 $(SolutionDir)$(Configuration); 

右键 ALL_BUILD,生成。

i7-7700k大概编了三个多小时,用笔记本编的可以去睡一觉了。

展示一下成果

参考:
https://blog.csdn.net/gyp2448565528/article/details/88383764
https://www.jianshu.com/p/d46596558640

你可能感兴趣的:(机器学习入门必备,人工智能-神经网络,科研工具)