zoukankan      html  css  js  c++  java
  • 深度学习开发环境搭建教程(Mac篇)

    本文将指导你如何在自己的Mac上部署Theano + Keras的深度学习开发环境。

    如果你的Mac不自带NVIDIA的独立显卡(例如15寸以下或者17年新款的Macbook。具体可以在“关于本机->系统报告->图形卡/显示器”里查看),那么你可能无法在这台Mac上使用GPU训练深度学习模型。不过这并不值得遗憾。事实上,我在自己的Macbook上(15-inch,Early 2013,NVIDIA GeForce GT 650M 1024 MB)做了一个简单的测试:在mnist数据集上训练CNN模型时,GPU模式相对于CPU模式仅节省了1/3的时间。这可能要归咎于Mac上赢弱的显卡。相比之下,我更推荐购买一台有着强劲性能的显卡的PC本(比如某些游戏本)来搭建深度学习的开发环境,或者是直接租赁AWS的Instance服务。

    下面步入正题。

    安装GPU开发环境

    几乎所有的主流深度学习框架在使用GPU进行模型训练时都依赖于两个底层环境:CUDA和cuDNN。前者是一个使用GPU进行并行计算的平台,后者是一个封装了使用GPU加速神经网络计算的library。

    安装CUDA

    1. 确保你的显卡被CUDA所兼容。前往CUDA-capable GPU检查可用的显卡型号。

    2. 接下来,安装xcode(通过App Store)和命令行工具:xcode-select --install。这一步会自动安装clang编译器,可以在命令行里输入:/usr/bin/cc --version进行验证。
      clang编译器也是安装Theano的预备环境之一。

    3. 前往官网下载并安装CUDA8.0(dmg安装包)。注意选择相应的平台。这一步会同时安装CUDA driver和CUDA toolkit。

    4. 配置环境变量。打开~/.bash_profile,输入四行命令:

      export CUDA_ROOT=/Developer/NVIDIA/CUDA-8.0
      

    export PATH=(CUDA_ROOT/bin){PATH:+:({PATH}} export DYLD_LIBRARY_PATH=)CUDA_ROOT/lib({DYLD_LIBRARY_PATH:+:){DYLD_LIBRARY_PATH}}
    export LD_LIBRARY_PATH=(CUDA_ROOT/lib:)LD_LIBRARY_PATH
    ```

    其中,环境变量CUDA_ROOT给Theano指定了CUDA的安装目录,也可以被设置为`/usr/local/cuda`(这两个路径下的文件均通过软链接被link到了一起)。
    
    配置完成后,退出编辑器,`source ~/.bash_profile`并执行`nvcc -V`验证CUDA的安装是否正常。
    

    安装cuDNN

    1. 前往官网下载cuDNN压缩包。注意选择合适的平台。我下载的是cuDNN5.1 for CUDA8.0(截止到17年4月,Theano尚不支持cuDNN6.0)。

    2. 解压缩下载的文件,将include目录下的*.h文件复制到$CUDA_ROOT/include目录下;将lib目录下的*.so文件复制到$CUDA_ROOT/lib目录下。

    至此,完成了GPU开发环境的基本部署。

    安装Theano

    Theano的安装极其简单:

    1. 首先,前往Miniconda安装Conda

    2. 使用Conda安装第三方依赖(“<>”里为可选包):

      conda install numpy scipy mkl <nose> <sphinx> <pydot-ng>
      
    3. 使用Conda安装Theano(如果出现网络连接异常,也可以使用pip进行安装。参见官网安装指南):

      conda install theano pygpu
      

    安装Keras

    Keras是一个建立在Theano和TensorFlow基础上,封装了大量底层接口,方便研究人员快速搭建模型原型的深度学习开发框架。它提供了pip和从源码直接安装两种方式。

    使用pip安装:

    sudo pip install keras
    

    从源码直接安装:

    git clone https://github.com/fchollet/keras.git
    cd keras
    sudo python setup.py install
    

    Keras默认以TensorFlow为底层计算引擎。第一次执行import keras命令后,会生成~/.keras/keras.json文件。打开这个文件,将"backend": "tensorflow"修改为"backend": "theano",即完成了后端计算引擎到Theano的切换。

    至此,一个基本的深度学习开发环境已搭建完成。重启电脑以确保所有配置均已生效。

    环境测试

    我们可以运行一些demo来测试环境的安装是否正常。

    从Github上下载Keras的源码,进入examples子目录,输入命令:

    THEANO_FLAGS=mode=FAST_RUN python mnist_cnn.py
    

    该命令将以CPU模式在mnist数据集上训练CNN模型。

    输入命令:

    THEANO_FLAGS='mode=FAST_RUN,device=cuda,floatX=float32,optimizer_including=cudnn' python mnist_cnn.py
    

    该命令将以GPU模式(并使用cudnn加速)在mnist数据集上训练CNN模型。

    如果一切正常,你将看到类似下图的屏幕输出:
    -c

    我在自己的Macbbok Pro(15寸,13年初,GT 650M的1024MB显卡)上分别测试了CPU,GPU,GPU with cuDNN三种模式下CNN模型(mnist数据集)的训练性能,其结果如下(单位:秒):

    -c

    出乎意料的是,如果没有cuDNN的加速,Mac上GPU的计算性能远不如CPU!而即便使用了cuDNN的加速,模型的训练也只不过缩短了1/3的时间。因此,如果想认真地玩一玩深度学习模型,还是建议上高性能的显卡,或者直接用AWS的GPU服务吧!

  • 相关阅读:
    渗透利器-kali工具 (第六章-1) 密码破解
    渗透利器-kali工具 (第五章-6) Metasploit后门生成模块
    渗透利器-kali工具 (第五章-5) Metasploit漏洞利用模块二
    渗透利器-kali工具 (第五章-4) Metasploit漏洞利用模块一
    渗透利器-kali工具 (第五章-3) Metasploit密码爆破模块
    渗透利器-kali工具 (第五章-2) Metasploit扫描漏洞模块
    渗透利器-kali工具 (第五章-1) Metasploit框架介绍与基本命令
    关于计算机网络的性能指标你需要知道这些
    写给大忙人看的计算机网络参考模型
    PHP基础编程之鬼斧神工的正则表达式-正则表达式基本语法+简单实例
  • 原文地址:https://www.cnblogs.com/iloveai/p/shen-du-xue-xi-kai-fa-huan-jing-da-jian-jiao-cheng.html
Copyright © 2011-2022 走看看