Tensorflow之编译window平台下基于c/c++使用tensorflow

本文详细介绍了在Windows环境下从源码编译TensorFlow的过程,包括环境准备、编译步骤及常见问题解决方法,适用于希望在Windows平台进行深度学习开发的用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在考虑将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在重新编译即可。

 

交叉编译 TensorFlow 可以在 Windows 上的 Ubuntu 子系统中完成。以下是一些基本步骤: 1. 安装 Ubuntu 子系统 首先,你需要在 Windows 上安装 Ubuntu 子系统。可以在 Windows 应用商店中搜索 Ubuntu,并按照提示进行安装。 2. 安装必要的软件包 要进行交叉编译,需要安装一些必要的软件包。在 Ubuntu 终端中输入以下命令以安装这些软件包: ``` sudo apt-get update sudo apt-get install build-essential curl python-dev python3-dev libcurl3-dev git ``` 3. 下载交叉编译工具链 接下来,需要下载交叉编译工具链。在 Ubuntu 终端中输入以下命令: ``` mkdir ~/cross-compilers cd ~/cross-compilers wget https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz tar -xf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz ``` 这将在 `~/cross-compilers` 目录下下载并解压工具链。 4. 设置环境变量 接下来,需要设置环境变量,以便交叉编译工具链能够在 Ubuntu 上正常工作。在 Ubuntu 终端中输入以下命令: ``` export PATH=$PATH:~/cross-compilers/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin export CC=arm-linux-gnueabihf-gcc export CXX=arm-linux-gnueabihf-g++ ``` 这将添加工具链的路径,并将交叉编译工具链指定为默认的 C 和 C++ 编译器。 5. 下载 TensorFlow 源代码 接下来,需要下载 TensorFlow 的源代码。在 Ubuntu 终端中输入以下命令: ``` git clone https://github.com/tensorflow/tensorflow.git cd tensorflow ``` 6. 配置 TensorFlow 在 Ubuntu 终端中输入以下命令以配置 TensorFlow: ``` ./configure ``` 在配置过程中,需要回答一些问题。例如,你需要指定交叉编译工具链的路径,并选择要编译TensorFlow 版本等。 7. 编译 TensorFlow 完成配置后,可以使用以下命令编译 TensorFlow: ``` bazel build --config=monolithic --config=android_arm //tensorflow/tools/pip_package:build_pip_package ``` 这将使用 Bazel 编译 TensorFlow 并构建 pip 包。 8. 构建 pip 包 最后,可以使用以下命令构建 pip 包: ``` bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg ``` 这将在 `/tmp/tensorflow_pkg` 目录下生成一个名为 `tensorflow-<version>-cp27-cp27mu-linux_armv7l.whl` 的 pip 包。 以上是在 Windows 上的 Ubuntu 子系统中交叉编译 TensorFlow 的基本步骤。根据具体情况可能需要进行一些额外的配置和调整。
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值