使用bazel从源代码编译tensorflow踩坑记录

0.写在前面的话

0.1配置信息

基本配置 版本
CPU Intel® Xeon® CPU E5645 @2.40GHz
GPU GeForce GTX 650 Ti (compute capability 3.0)
操作系统 Ubuntu18.04
openjdk 11.0.3
python 3.6.8
bazel 0.25.2

0.2废话和吐槽

实验室的电脑,由于CPU型号比较老,不支持AVX指令集,所以用tensorflow官方发布的包只能支持到tensorflow1.5。
同时,GPU型号也比较老,compute capacity只有3.0,所以跑网络的时候官方的包也不支持,只能用CPU硬跑。
最后,由于最近需要用tensorflow lite,而tensorflow1.7以下版本的Lite有bug,所以只能考虑从源代码编译一下,顺带给个优化。

1.理想流程

1.1安装bazel

1.1.1安装java的JDK

JDK我之前就安装过了,此处略去。可以参考[2]中的步骤安装。

1.1.2安装bazel包

安装时提示bazel版本不能高于0.25.2,所以安装了bazel0.25.2。
首先下载bazel安装包。网上教程下载.sh文件比较多,我比较懒,直接下载了deb包。用.sh文件法可以参考[1]下载完成后进入文件所在目录(我一般放在~/Downloads

cd ~/Downloads

然后用dpkg安装bazel包

sudo dpkg -i bazel_0.25.2-linux-x86_64.deb

一般这个时候会报错,显示依赖没有安装,所以用apt修复依赖

sudo apt-get -f install

然后继续安装

sudo dpkg -i bazel_0.25.2-linux-x86_64.deb

安装完毕,查看一下有没有安装好

bazel --version

1.2下载tensorflow源代码并选择版本

1.2.1下载安装git

sudo apt-get install git

有条件的可以配置ssh,反正迟早都需要一个github账号的。

1.2.2下载源代码

千万不要用网页上的Download Zip下载的那个zip包,那个没法选择安装的版本。
进入目录,输入

sudo git clone https://github.com/tensorflow/tensorflow

会在当前路径下新建一个名为tensorflow的文件夹,里面是源代码文件。
要是有ssh,可以用

sudo git clone github@github.com:tensorflow/tensorflow.git

1.2.3选择版本

选择想要编译的版本,例如tensorflow1.14

sudo git checkout r1.14

这里要注意bazel版本的问题,实测可以用bazel_0.25.2(不能再高了)编译tensorflow1.14,可以用bazel_0.19.2(0.25.2不能)编译tensorflow1.12。但是具体使用的版本还是建议参考官方配置[5],同时gcc版本不建议高于6.

1.3用bazel编译源代码并生成.whl文件

1.3.1配置编译文件

由于后面的步骤都不能加sudo,所以首先确保我们有权限(是文件的所有者)。

$ ls -l ~/Downloads/ |grep
  • 23
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值