为什么要进行源码安装呢?因为tensorflow仅支持cuda7.5,需要源码重新编译使其支持cuda8.0。
首先说明,该篇博客是在ubuntu16.04+gtx1060+cuda8.0+caffe安装、测试经历基础上进行安装和测试,需要安装gtx 1060驱动、cuda和cudnn,前篇博客已经介绍清楚,这里不再赘述,具体版本如下:
GTX 1060驱动版本为367.35
cuda版本为cuda_8.0.27_linux.run
cudnn版本为cudnn-8.0-linux-x64-v5.1.tgz
打个广告:目前博主正在字节跳动奋斗,欢迎各位一起来共事
【内推码】:HVWUV6Y
【投递地址】:https://job.bytedance.com/
废话不多说,上车吧,少年
一、安装python依赖
针对python2.7
sudo apt-get install python-pip
sudo apt-get install python-numpy swig python-dev python-wheel
针对python3.x
sudo apt-get install python3-pip
sudo apt-get install python3-numpy swig python3-dev python3-wheel
拉取完成后,在/home/pawn/目录下增加了py-faster-rcnn文件夹【pawn是我的ubuntu用户名】
bazel是谷歌代码编译工具,编译tensorflow源码需要用到bazel
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
终端输入java -version
,测试是否安装成功,如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VtYXR8tJ-1592371213720)(https://img-blog.csdn.net/20161010173843437)]
2. 添加bazel软件包源且仅一次有效
echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl https://storage.googleapis.com/bazel-apt/doc/apt-key.pub.gpg | sudo apt-key add -
sudo apt-get update && sudo apt-get install bazel
一旦安装,可以用以下命令升级为新版bazel
sudo apt-get upgrade bazel
bazel
,如下图所示,表示安装成功载入源码,终端输入
git clone https://github.com/tensorflow/tensorflow
配置源码,终端输入
cd tensorflow
./configure
配置过程
当输入y确认后出现如下图所示错误,缺少libcurl3-dev软件包
终端输入sudo apt-get install libcurl3-dev
重新再终端输入 ./configure
进行配置,多次尝试configure成功后,如下图所示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4mV4JEnD-1592371213725)(https://img-blog.csdn.net/20161010191110869)]
具体分析:
①指定python位置,默认为usr/bin/python,直接回车
②希望谷歌云平台支持tensorflow编译吗?输入y
③希望Hadoop文件系统支持tensorflow编译吗?输入y
④输入期望的python库路径,默认为/usr/local/lib/python2.7/dist-packages,直接回车
⑤希望使用GPU支持tensorflow编译吗?输入y
⑥指定哪个gcc被nvcc作为主机编译器,默认为/usr/bin/gcc,直接回车
⑦指定期望使用的cuda sdk版本,输入8.0
⑧指定cuda 8.0工具安装位置,默认为/usr/local/cuda,直接回车
⑨指定期望使用的cudnn版本,直接回车使用默认
⑩指定cudnn库目录安装位置,默认为/usr/local/cuda,直接回车
⑪输入显卡计算能力,在https://developer.nvidia.com/cuda-gpus查询,gtx 1060为6.1,输入6.1
cd ~/tensorflow
使用GPU支持编译源码
bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
编译结果显示如下(不清楚的图片右键新标签页打开图片)
2. 终端输入
bazel-bin/tensorflow/tools/pip_package/build_pip_package /home/pawn/tensorflow_pkg
创建pip包,在主目录下生成了tensorflow_pkg目录,含tensorflow-0.11.0rc0-py2-none-any.whl文件
sudo pip install /home/pawn/tensorflow_pkg/tensorflow-0.11.0rc0-py2-none-any.whl
为了方便开发tensorflow的工作人员,可以在交互式命令中测试tensorflow,而不必重新安装它,可以执行以下步骤
cd tensorflow/
bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
mkdir _python_build
cd _python_build
ln -s ../bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/org_tensorflow/* .
ln -s ../tensorflow/tools/pip_package/* .
sudo python setup.py develop
结果如下图所示:
cd ~/tensorflow/tensorflow/models/image/mnist/
python convolutional.py
结果如下图所示: