在win10 VS2015环境下编译TensorFlow C++ API
由于项目需求,需要将Python环境下训练的TensorFlow模型转移至C++环境进行部署,花了一天时间成功编译了TensorFlow C++ API,期间也踩了一些坑,在此记录编译的过程。
笔者主要参考了TensorFlow的官方文档https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/cmake/README.md
具体步骤如下:
1.环境准备
WIN10,VS2015
安装Cmake,一个较新的版本即可
安装git,注意添加git环境变量
下载TensorFlow1.8源码https://github.com/tensorflow/tensorflow/tree/r1.8/tensorflow
2.用CMake-GUI预编译
source code路径选择tensorflow/contrib/cmake
输出路径自行设置,本文选择D:/tfcpp
点击configure,这时cmake会报错project files may be invalid,这时由于未设置Swigwin-3.0.12路径导致的,设置路径后继续config,这时不会报错了。
笔者对相关编译选项设置如下:
根据TensorFlow官方教程
这两个选项必须选上,笔者尝试如果不选择这两个选项,会报找不到snappy.h文件的错误
接下来点击generate,生成VS工程
3.vs2015编译
在编译之前,有三个注意事项:
1.挂*,编译过程中需要下载文件,网络不通会导致文件下载失败
2.用管理员模式进入VS2015,否则会出现,找不到“#include "tensorflow/core/framework/device_attributes.pb_text.h"这个错误,推测可能是因为程序在C盘,权限不够造成的
3.注意将最大并行项目生成数设置为1,如下图
否则会出现compiler is out of heap space这一错误,之后点击生成项目即可
看网上很多博客都说需要编译3-4个小时才能完成,但是笔者在i7环境下只编译了1个多小时,除了上面遇到的三个问题之外,基本按照TensorFlow官方文档就编译成功了。