最近在考虑将tensorflow的工程迁移到window平台下进行,由于linux和mac平台在官网上有对应的c/c++接口的安装说明,而window平台则需要自己编译。所以现将编译过程记录如下:

一、环境准备

1. vs2015

2. swigwin-3.0.12。下载链接为  http://swig.org/download.html  。下载之后解压缩即可。

3. Cmake  , 下载链接为:https://cmake.org/download/  。下载之后解压缩即可,但是要配置环境变量,把对应的cmake.exe文件放入对应的系统路径中。

4. git  和python

5. 在环境变量中将C:\Windows\Microsoft.NET\Framework64\v4.0.30319加入环境变量(为了使用MSBuild)

二、编译步骤(Release)

1. 首先git下tensorflow的源码,具体地址可参见源源码编译那篇博客

2. 在tensorflow/tensorflow/contrib/cmake/目录下建立build

3. 在build目录下面执行cmake .. -A x64 -DCMAKE_BUILD_TYPE=Release -DSWIG_EXECUTABLE=D:/swigwin-3.0.12/swig.exe

-DPYTHON_EXECUTABLE=D:/Python/Python35/python.exe  -DPYTHON_LIBRARIES=D:/Python/Python35/libs/python35.lib 

4. 执行

set PreferredToolArchitecture = x64

 MSBuild /p:Configuration=Release ALL_BUILD.vcxproj

执行成功之后会在对应的目录下出现下述列表

其中tensorflow.lib和tensorflow.dll即为所需要的文件。

5. 使用和验证

   1. 在 vs 中新建一个工程(控制台文件和空白项均可)。在工程中右击——属性——c/c++——常规——附加包含目录,在该目录下添加E:\tensorflow
E:\tensorflow\tensorflow\contrib\cmake\build
E:\tensorflow\tensorflow\contrib\cmake\build\external\eigen_archive
E:\tensorflow\tensorflow\contrib\cmake\build\protobuf\src\protobuf\src
E:\tensorflow\tensorflow\contrib\cmake\build\external\nsync\public

  2. 右键——项目——添加——现有项,找到对应包含tensorflow.lib的目录。加入lib链接。

  3. 右键——属性——c/c++——预处理器,然后在里面加入PLATFORM_WINDOWS

  4. 输入代码并运行

 

#include <stdio.h>
#include <stdlib.h>
#include <tensorflow\core\public\version.h>

int main(void)
{
printf("Hellow from Tensorflow c library version %s\n", TF_VERSION_STRING);
system("pause");
return 0;

}

 

 

如果想在一个已经有的工程中加入tensorlfow的代码,可以在工程的属性下面,导入上述对应的tensorflow相关依赖和链接库即可。

 

三、一些警告

1. 一般在编译完之后会有如下界面,该界面不用管。

2.  在编译过程有时候会报\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB6006: “cmd.exe”已退 出,代码为 1。 [D:\tensorflow-master\tensorflow\contrib\cmake\build\grpc.vcxproj]

此时在cmakelist中将grpc设置为off在重新编译即可。

 

GitHub 加速计划 / te / tensorflow
184.55 K
74.12 K
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:2 个月前 )
a49e66f2 PiperOrigin-RevId: 663726708 2 个月前
91dac11a This test overrides disabled_backends, dropping the default value in the process. PiperOrigin-RevId: 663711155 2 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐