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