Ubuntu16.04 编译安装TensorFlow踩坑指南,参考官方文档
图片来自网络
使用pip安装TensorFlow
在运算过程中会报各种Warning
说你的机器支持一些运算指令符,可以加速CPU计算,但是你没有编译,让人抓狂,于是花了一点时间编译TF。
2017-12-13 16:32:50.754169: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations. 2017-12-13 16:32:50.754216: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations. 2017-12-13 16:32:50.754220: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations. 2017-12-13 16:32:50.754223: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations. 2017-12-13 16:32:50.754227: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
首先安装bazel(如果机子上已有,可跳过),具体步骤按照官网三步解决(我的系统是Ubuntu16.04 根据自己系统环境参照安装步骤),这里不赘述,安装完成后测试如下显示就是成功安装
~ bazel version Build label: 0.8.1 Build target: bazel-out/k8-fastbuild/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar Build time: Tue Dec 5 14:29:45 2017 (1512484185) Build timestamp: 1512484185 Build timestamp as int: 1512484185
下载
MKL
,点击下载链接
什么是MKL
:Intel MKL,全称 Intel Math Kernel Library,提供经过高度优化和大量线程化处理的数学例程,面向性能要求极高的科学、工程及金融等领域的应用。MKL是一款商用函数库,提供C、Fortran 和 Fortran 95的支持,但仅支持Intel自家旗下的CPU。解压mkl目录下执行
./install.sh
,配置环境变量export MKL_HOME=/opt/intel/mkl/lib/intel64 export PATH=$SCALA_HOME/bin:$MKL_HOME:$PATH
配置 TensorFlow
安装目录下执行
git clone --recurse-submodules https://github.com/tensorflow/tensorflow
源码根路径执行
./configure
tensorflow git:(master) ./configure You have bazel 0.8.1 installed. Please specify the location of python. [Default is /usr/bin/python]: /usr/bin/python3.5 Found possible Python library paths: /usr/local/lib/python3.5/dist-packages /usr/lib/python3/dist-packages Please input the desired Python library path to use. Default is [/usr/local/lib/python3.5/dist-packages] Do you wish to build TensorFlow with jemalloc as malloc support? [Y/n]: y jemalloc as malloc support will be enabled for TensorFlow. Do you wish to build TensorFlow with Google Cloud Platform support? [Y/n]: n No Google Cloud Platform support will be enabled for TensorFlow. Do you wish to build TensorFlow with Hadoop File System support? [Y/n]: n No Hadoop File System support will be enabled for TensorFlow. Do you wish to build TensorFlow with Amazon S3 File System support? [Y/n]: n No Amazon S3 File System support will be enabled for TensorFlow. Do you wish to build TensorFlow with XLA JIT support? [y/N]: n No XLA JIT support will be enabled for TensorFlow. Do you wish to build TensorFlow with GDR support? [y/N]: n No GDR support will be enabled for TensorFlow. Do you wish to build TensorFlow with VERBS support? [y/N]: n No VERBS support will be enabled for TensorFlow. Do you wish to build TensorFlow with OpenCL SYCL support? [y/N]: n No OpenCL SYCL support will be enabled for TensorFlow. Do you wish to build TensorFlow with CUDA support? [y/N]: n No CUDA support will be enabled for TensorFlow. Do you wish to build TensorFlow with MPI support? [y/N]: n No MPI support will be enabled for TensorFlow. Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native]: --config=mkl Add "--config=mkl" to your bazel command to build with MKL support. Please note that MKL on MacOS or windows is still not supported. If you would like to use a local MKL instead of downloading, please set the environment variable "TF_MKL_ROOT" every time before build. Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: n Not configuring the WORKSPACE for Android builds. Configuration finished
编译目标
tensorflow git:(master) bazel build -c opt --config=mkl --copt=-mavx --copt=-msse4.1 --copt=-msse4.2 --copt=-mavx2 --copt=-mfma -k //tensorflow/tools/pip_package:build_pip_package
输出以下内容
Target //tensorflow/tools/pip_package:build_pip_package up-to-date: bazel-bin/tensorflow/tools/pip_package/build_pip_package INFO: Elapsed time: 1239.505s, Critical Path: 62.79s INFO: Build completed successfully, 2379 total actions
bazel编译命令建立了一个名为build_pip_package的脚本。运行如下的命令
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
将会在 /tmp/tensorflow_pkg路径下生成一个.whl文件:
2017年 12月 14日 星期四 18:02:41 CST : === Using tmpdir: /tmp/tmp.4MzVKmvfxb ~/Documents/tmp/tensorflow/bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles ~/Documents/tmp/tensorflow ~/Documents/tmp/tensorflow /tmp/tmp.4MzVKmvfxb ~/Documents/tmp/tensorflow 2017年 12月 14日 星期四 18:02:43 CST : === Building wheel ~/Documents/tmp/tensorflow 2017年 12月 14日 星期四 18:02:59 CST : === Output wheel file is in: /tmp/tensorflow_pkg
使用如下命令安装pip包
tensorflow git:(master) sudo pip3 install /tmp/tensorflow_pkg/tensorflow-1.4.0-cp35-cp35m-linux_x86_64.whl The directory '/home/xhades/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/home/xhades/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Processing /tmp/tensorflow_pkg/tensorflow-1.4.0-cp35-cp35m-linux_x86_64.whl Requirement already satisfied: protobuf>=3.4.0 in /usr/local/lib/python3.5/dist-packages (from tensorflow==1.4.0) Requirement already satisfied: numpy>=1.12.1 in /usr/local/lib/python3.5/dist-packages (from tensorflow==1.4.0) Requirement already satisfied: six>=1.10.0 in /usr/lib/python3/dist-packages (from tensorflow==1.4.0) Requirement already satisfied: wheel>=0.26 in /usr/lib/python3/dist-packages (from tensorflow==1.4.0) Requirement already satisfied: absl-py>=0.1.6 in /usr/local/lib/python3.5/dist-packages (from tensorflow==1.4.0) Requirement already satisfied: tensorflow-tensorboard in /usr/local/lib/python3.5/dist-packages (from tensorflow==1.4.0) Requirement already satisfied: setuptools in /usr/local/lib/python3.5/dist-packages (from protobuf>=3.4.0->tensorflow==1.4.0) Requirement already satisfied: werkzeug>=0.11.10 in /usr/local/lib/python3.5/dist-packages (from tensorflow-tensorboard->tensorflow==1.4.0) Requirement already satisfied: html5lib==0.9999999 in /usr/local/lib/python3.5/dist-packages (from tensorflow-tensorboard->tensorflow==1.4.0) Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.5/dist-packages (from tensorflow-tensorboard->tensorflow==1.4.0) Requirement already satisfied: bleach==1.5.0 in /usr/local/lib/python3.5/dist-packages (from tensorflow-tensorboard->tensorflow==1.4.0) Installing collected packages: tensorflow Successfully installed tensorflow-1.4.0
安装完成,测试一下没有再出现Warning,计算速度上也有明显提升
作者:_Apache
链接:https://www.jianshu.com/p/1d305ac47d61
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦