Tensorflow编译源码安装

来源:互联网 发布:矩阵的几求法 编辑:程序博客网 时间:2024/05/21 17:50

Tensorflow编译源码安装

目录

  • 硬软件环境说明
  • 依赖包下载
  • bazel下载
  • Tensorflow源码下载
  • 源码编译
  • 安装

硬软件环境说明

本次搭建深度学习环境的硬件配置如下:

硬件 配置 处理器 Intel Xeon(R)CPU E5-2640 v4@ 2.40GHz x 20 内存 64G 硬盘 1.3TB 图形卡 GeForce GTX 1080Ti/PCle/SSE2

本次搭建深度学习环境的软件如下:

软件 配置 操作系统 Ubuntu 16.04 64-bit NVIDIA驱动 nvidia384 cuda 8.0 cuDNN 6.0

依赖包下载

  • Python环境准备
    $ sudo aot update    $ sudo apt install python-pip    $ sudo apt install python-numpy swig python-dev python-wheel
  • Java环境准备
    此处准备Java环境是因为bazel支持多语言,如C++,Java,Objective-C等。bazel安装时需要Java JDK 8。
    $ sudo apt install default-jre    $ sudo apt install default-jdk

bazel下载

本文档使用的bazel版本是0.5.2。请在网上下载该版本。bazel版本过高可能会导致编译出错。

    $ cd ~/Downloads   #切换到你安装bazel的目录下    $ ./bazel-0.5.2-installer-linux-x86_64.sh

Tensorflow源码下载

本文档使用git方式下载Tensorflow源码。

    $ sudo apt install git    $ cd ~   #切换到你的用户目录下执行以下命令,你也可以创建自己的目录并在该目录下工作。    $ git clone https://github.com/tensorflow/tensorflow

源码编译

    $ cd ~/tensorflow    $ git checkout v1.3.0   #本文档安装的是1.3.0版的tensorflow。你也可以根据你想要的版本签出tensorflow的某一个版本。    $ ./configure   #配置编译选项

python解释器路径选择/usr/bin/python。

Do you wish to build TensorFlow with MKL support?[Y/N] N

Do you wish to use jemalloc as the malloc implementation?[Y/n] Y

其余选项都选否。直到下面一条提示。

Do you wish to build TensorFlow with CUDA support?[y/N] y

Do you want to use clang as CUDA compiler?[y/N] N

再往下选择时,都选择默认。直到下面一条提示。

Do you wish to build TensorFlow with MPI support?[y/N] N

做完以上操作后,./configure会提示你配置结束。接着,输入如下命令。

    $ bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package   #等待编译结束    $ bazel-bin/tensorflow/tools/pip_package/build_pip_package ~/Documents/   #这条命令会在你的Docements目录下生成一个whl文件

安装

使用Pip安装上一步生成的whl文件

    $ cd ~/Documents/    $ pip install tensorflow-1.3.0-cp27-cp27mu-linux_x86_64.whl

安装结束后,测试下是否安装成功

    $ python    >>> import tensorflow as tf    >>> a = tf.constant(1)    >>> b = tf.constant(2)    >>> c = a + b    >>> sess = tf.Session()    >>> sess.run(c)   #这条语句会输出3    >>> sess.close()    >>> quit()    $

搞定了之后,便可以使用基于GPU的TensorFlow。

原创粉丝点击