Ubuntu18.04编译TensorFlow C++ API以及遇到的问题

Ubuntu18.04编译TensorFlow C++ API以及遇到的问题

参考:

Linux环境下编译TensorFlow C++ API和测试方法总结(完美版)_Asia-Lee的博客

关于bazel构建文件出现的release-62-1.tar.gz错误解决_bazel 6.2.1 有问题_芝麻开蒙的博客

https://blog.csdn.net/zqwwwm/article/details/121924210

https://blog.csdn.net/shellmoon/article/details/113747481

需安装软件库和对应版本

tensorflow-1.13.1链接:TensorFlow 1.13.1

bazel-0.19.2-installer-linux-x86_64.sh链接:bazel 0.19.2

Anaconda3-4.3.1-Linux-x86_64.sh链接:Anaconda3 4.3.1

protobuf-all-3.6.1.tar.gz链接:protobuf 3.6.1

环境配置

1.安装Anaconda3

./Anaconda3-4.3.1-Linux-x86_64.sh

在添加环境变量的时候选yes

2.安装bazel

sudo apt-get install unzip make g++ gcc cmake

sudo apt-get install autoconf automake libtool curl zlib1g-dev liblzma-dev

./bazel-0.19.2-installer-linux-x86_64.sh --user

把export PATH="$PATH:$HOME/bin"添加到~/.bashrc中

source ~/.bashrc

3.安装protobuf

tar -zxvf protobuf-all-3.6.1.tar.gz

cd protobuf-all-3.6.1

./configure

sudo make

sudo make install

sudo vim /etc/profile

在最后一行添加export LD_LIBRARY_PATH=/usr/local/lib

source /etc/profile

验证:protoc --version

4.配置TensorFlow

cd tensorflow-1.13.1

./configure

5.使用bazel进行编译生成动态库

问题1

如果不能科学上网的话,需要自己建一个本地的http服务,然后下载release-62-1.tar.gz,不然会一直报错。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dowaJGP9-1689389908385)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\1689248723078.png)]

解决步骤:
a 搭建本地http服务
sudo apt-get install apache2

sudo apt-get install apache2-dev

验证:sudo systemctl status apache2

到浏览器输入localhost看是否显示apache2的页面
b 把release-62.1.tar.gz放到本地http服务器

1.下载icu-release-62-1.tar.gz并重命名为release-62-1.tar.gzhttps://codeload.github.com/unicode-org/icu/tar.gz/release-62-1

2.sudo mv release-62-1.tar.gz /var/www/html/

3.把http://localhost/release-62-1.tar.gz添加到tensorflow-1.13.1/third_party/icu/workspace.bzl的urls

4.把86b85fbf1b251d7a658de86ce5a0c8f34151027cc60b01e1b76f167379acf181替换掉tensorflow/third_party/icu/workspace.bzl的sha256后面的数字

(1)使用cuda(gpu版)
export LD_LIBRARY_PATH=/usr/local/lib
(2)不使用cuda(cpu版)
bazel build --config=opt //tensorflow:libtensorflow_cc.so

6.成功编译

这里不知道是因为网络问题还是g++版本的问题,反复编译了很多次才成功。

运行样例

这里的样例我参考的别人的博客

指路:https://blog.csdn.net/zqwwwm/article/details/121924210

安装其他依赖库

报错1

fatal error: absl/strings/string_view.h: No such file or directory
#include “absl/strings/string_view.h”

下载abseil,然后把目录下的absl文件夹拷贝到/usr/local/include中 下载链接:https://github.com/abseil/abseil-cpp

sudo cp -r ./absl /usr/local/include

报错2

没有安装eigen3时会运行样例会报错:fatal error: unsupported/Eigen/CXX11/Tensor: No such file or directory
#include “unsupported/Eigen/CXX11/Tensor”

这里我没有在Linux上成功使用科学上网,所以依赖库一直下载不下来,就先只安了一个eigen3.

这里安装的是eigen3.3.7版本 链接:https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz

cd eigen-3.3.7
mkdir build
cd build
sudo cmake ..
sudo make install

sudo cp -r /usr/local/include/eigen3/Eigen /usr/include
sudo cp -r /usr/local/include/eigen3/signature_of_eigen3_matrix_library /usr/include
sudo cp -r /usr/local/include/eigen3/unsupported /usr/include
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值