Spark学习之路深入理解tensorflow互联网科技

源码编译安装TensorFlow

2017-12-14  本文已影响337人  xhades

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 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

配置 TensorFlow

  1. 安装目录下执行
git clone --recurse-submodules https://github.com/tensorflow/tensorflow
  1. 源码根路径执行./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
  1. 编译目标
➜  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
  1. 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

  1. 使用如下命令安装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,计算速度上也有明显提升

上一篇下一篇

猜你喜欢

热点阅读