源码编译安装TensorFlow

xiaoxiao2021-02-28  11

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文件: 20171214日 星期四 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 20171214日 星期四 18:02:43 CST : === Building wheel ~/Documents/tmp/tensorflow 20171214日 星期四 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,计算速度上也有明显提升

转载请注明原文地址: https://www.6miu.com/read-1650211.html

最新回复(0)