# 从github下载tensorflow源代码
git clone https://github.com/tensorflow/tensorflow -b r1.8
3.1 进入tensorflow文件夹中,首先进行项目配置。
## 进入根目录后编译
./configure
下面我贴出在我的机器上各选项的选择:值得注意的是,如果我们要使用cuda和cudnn的话,一定要搞清楚自己机器上使用的cuda和cudnn的版本(尤其是cudnn),例如我使用的是cuda8.0和cudnn6.0.21。
#bazel build --config=opt --config=cuda //tensorflow:libtensorflow_cc.so
#bazel build --config=opt //tensorflow:libtensorflow_cc.so
# 编译生成.so文件, 编译C++ API的库 (建议)
bazel build //tensorflow:libtensorflow_cc.so
(bazel build --config=monolithic --config=cuda //tensorflow:libtensorflow_cc.so)
# 也可以选择,编译C API的库
bazel build //tensorflow:libtensorflow.so
(bazel build --config=monolithic -c opt --verbose_failures //tensorflow:libtensorflow.so)
- 在等待30多分钟后, 如果编译成功,在tensorflow根目录下出现 bazel-bin, bazel-genfiles 等文件夹
- 在 tensorflow/bazel-bin/tensorflow 生成libtensorflow_cc.so 和 libtensorflow_framework.so
- 安装依赖:到 tensorflow/contrib/makefile目录下,找到build_all_xxx.sh文件并执行
- 下载安装缺少的库:./tensorflow/contrib/makefile/download_dependencies.sh
- 进入tensorflow/contrib/makefile/downloads/ 安装protobuf和eigen
安装protobuf
在Ubuntu的上,您可以使用以下命令安装它们:
在其他平台上,请在继续之前使用相应的包管理工具进行安装。
如果从github上获取源代码,则需要先生成配置脚本:
这将下载gmock源(用于C ++协议缓冲区单元测试)到当前目录并运行automake,autoconf等,以生成配置脚本和各种模板makefile。
如果您使用的是发行包(已包含gmock和配置脚本),则可以跳过此步骤。
要构建和安装C ++ Protocol Buffer运行时和协议缓冲区编译器(protoc),请执行以下命令:
如果“make check”失败,您仍然可以安装,但该库的某些功能可能无法在您的系统上正常运行。继续需要您自担风险。
然后将demo的vi CMakeLists.txt 修改路径
再将在tensorflow/bazel-bin/tensorflow 生成libtensorflow_cc.so 和 libtensorflow_framework.so拷贝到demo的lib下覆盖
接着把图片和model放在同一个目录下 make .
make
./tf_test digit.jpg