美文网首页我爱编程
【深度学习-1】安装TensorFlow

【深度学习-1】安装TensorFlow

作者: Rapp | 来源:发表于2017-04-25 10:31 被阅读496次

    Rapp从今天起推出【深度学习】系列,主要记录自己在学习深度学习技术的过程中遇到的问题和心得。在深度学习领域,Rapp还是一只小菜鸟,文章中难免会出现错误,望有经验的读者多多赐教!

    在开始修炼深度学习之前,必须要有件趁手的兵器。现在比较流行的深度学习框架有很多,网上也有很多关于选择哪种框架的讨论。既然我们没有时间把它们都学会,那就挑一件出自名门(Google)的TensorFlow(TF)来练吧。根据我以往学习Web开发框架的经验,各种框架之间都有一定的联系,只要学好一个,再学其他的也很容易。

    本文将记录我安装TF的过程。基于CPU的TF安装很简单(用pip就搞定),我将重点介绍难度较大的基于GPU计算的TF安装(从如何选择GPU到如何从source code安装TF)。

    安装基于CPU计算的TF

    1. 创建virtualenv环境
    $ sudo apt-get install python-pip python-dev python-virtualenv
    $ virtualenv tensorflow_cpu
    
    1. 激活virtualenv环境
    $ source tensorflow_cpu/bin/activate
    
    1. 安装TensorFlow和其他相关的python包
    (tensorflow_cpu)$ pip install tensorflow
    (tensorflow_cpu)$ pip install ipython
    (tensorflow_cpu)$ pip install matplotlib
    (tensorflow_cpu)$ pip install jupyter
    

    对Python virtualenv不熟悉的读者可以参考这里

    如何选择用于深度学习的GPU
    如果说大数据是深度学习的“燃料”,那么GPU就是深度学习的“引擎”。为了让模型训练得足够快,我们必须考虑使用GPU。究竟如何选择合适的GPU呢?知乎上有相关的讨论,但是我觉得写的比较凌乱。我推荐一个老外写的blog:Which GPU(s) to Get for Deep Learning。文章有点长,为了节省时间,我把最精华的部分列在下面:

    gpu.png
    建议大家结合实际需求和价格选择适合自己的GPU(如果您是“土豪”就随意啦)。我的需求是cost efficient & I do Kaggle for deep learning competitions & I am a researcher,那就选择GTX 1080 Ti吧。我在京东上买的1080Ti(¥5999),还买了一根DisplayPort连接线(¥45),用来连接显示器。

    安装基于GPU计算的TF

    1. 准备工作:安装依赖的python包
    $ sudo apt-get install python-pip python-dev python-virtualenv python-numpy python-wheel python-imaging swig
    
    1. 安装Google软件构建工具Bazel,build TF的时候需要用
      首先要安装Java Development Kit (JDK) 8,以及一些依赖的软件
    $ sudo apt-get install default-jdk
    $ sudo apt-get install pkg-config zip g++ zlib1g-dev unzip
    

    在github上下载Bazel的installer:bazel-0.4.5-installer-linux-x86_64.sh

    barzel.png
    运行installer的时候,加--user参数可以将bazel安装在用户home目录下的bin目录,修改PATH变量后,可以运行bazel version查看是否安装成功。
    $ chmod +x bazel-0.4.5-installer-linux-x86_64.sh
    $ ./bazel-0.4.5-installer-linux-x86_64.sh --user
    $ printf '\nexport PATH=$PATH:$HOME/bin\n' >> ~/.bashrc
    $ source ~/.bashrc
    $ bazel version
    
    1. 安装CUDA
      为了确保显卡与CUDA兼容,在NVIDA官网上查找CUDA-capable GPU
      gtx1080ti.png
      GTX 1080 Ti 的Compute Capability (6.1) 需要记下来,稍后会用到。
      下载CUDA的installer
      cuda.png
      注意要选择正确的Ubuntu版本号,如果不清楚,可以参考下面的命令:
      ubuntu.png
      下载完毕后,按照网页上的installation instructions进行安装。CUDA安装在/usr/local/cude目录下。
    2. 安装cuDNN
      下载安装cuDNN (下载前要先注册一下,按照提示一步步做即可)
      cudnn_1.png
      cuDNN下载页面,注意我们之前安装的是CUDA8.0
      cudnn_2.png
      安装cuDNN的命令:
    $ tar xvzf cudnn-8.0-linux-x64-v6.0.tgz
    $ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
    $ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
    $ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
    
    1. 从源代码安装TensorFlow
      首先下载source code,做build前的准备工作(这里会用到前面记录下来的Compute Capability,详细配置见下图):
    $ git clone --recurse-submodules https://github.com/tensorflow/tensorflow
    $ cd tensorflow
    $ ./configure
    
    configure.png

    然后用bazel来build TF源代码(需要比较长的时间)

    $ bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
    

    接下来创建Python .whl 文件(输出到~/tensorflow/bin/目录下)

    $ bazel-bin/tensorflow/tools/pip_package/build_pip_package ~/tensorflow/bin
    

    最后用pip来安装(和前面的基于CPU的方法类似)

    $ virtualenv tensorflow_gpu
    $ source tensorflow_gpu/bin/activate
    (tensorflow_gpu)$ pip install ~/tensorflow/bin/tensorflow-1.1.0rc2-cp27-cp27mu-linux_x86_64.whl
    (tensorflow_gpu)$ pip install ipython
    (tensorflow_gpu)$ pip install matplotlib
    (tensorflow_gpu)$ pip install jupyter
    

    至此,我们已经安装好了CPU和GPU支持的TensorFlow,在使用之前记得要先激活虚拟环境source tensorflow_gpu/bin/activate。强大的兵器已经入手,接下来就是通过简单的招式来一步步修炼“神经网络大法”的时候了!预知后事如何,且听下回分解!

    qrcode.jpg

    相关文章

      网友评论

        本文标题:【深度学习-1】安装TensorFlow

        本文链接:https://www.haomeiwen.com/subject/stctzttx.html