Chainer 导言和安装

Posted by 徐志平 on December 17, 2017

导言和安装

Chainer是“灵活的深度学习框架”。与其他着名的tensorflow或caffe深度学习框架的不同之处在于,Chainer动态地构建了神经网络,使您能够在学习时更灵活地编写您的神经网络。

特别是,我想推荐Chainer

  • 深度学习框架初学者
  • 简单的环境设置:一个命令,pip install chainer,用于安装chainer。
  • 易于调试:当发生错误时,您可以看到Python堆栈跟踪日志。

  • 研究人员
  • 灵活性:Chainer由于其基本概念,“边定义边运行”的架构非常灵活。您可以轻松定义复杂的网络。
  • 可扩展/可定制:也很容易开发自己的功能,你自己的神经网络层只使用python与Chainer。适合研究快速尝试新想法。

  • 学生
  • 教育:Chainer是开源的,也适合学习深度学习框架。由于chainer是用python编写的,所以如果你想挖掘内部行为,你可以跳转到函数定义并读取python docstring。

在MacOS上如何安装Chainer

我们讲的MacOS版本是macOS Sierra (10.12.6)更高阶的版本可能在安装时有些不同,敬请注意。

1. 首先安装CUDA环境

没有CUDA支持的深度学习在训练过程基本会很慢(慢的令人发指),所以强烈建议安装CUDA。首先我们到Nvidia网站上下载针对macOS的CUDA环境:https://developer.nvidia.com/compute/cuda/9.1/Prod/local_installers/cuda_9.1.85_mac

遵循着安装器的指令一步步安装以后,再安装CuDNN运行库,访问链接https://developer.nvidia.com/rdp/cudnn-download 以获得CuDNN,建议7,6和5 三个版本的CuDNN都下载,按照版本号从低到高的顺序依次将对应头文件和动态链接库放到/usr/local/cuda/include 或者/usr/local/cuda/lib中。然后修改~/.bash_profile如下

export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$CUDA_HOME/lib"
export PATH="$CUDA_HOME/bin:$PATH"
export PATH="/usr/local/sbin:$PATH"
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/cuda/lib

2. 安装Anaconda环境

国内的用户可以访问到 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下载对应的安装包,建议选择5.0.0版本https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.0.0-MacOSX-x86_64.pkg 。

3. 安装Xcode 8.2.1

通过Apple Developer官方网站下载Xcode 8.2.1 的xip格式的压缩包,解压后放在应用程序文件夹里,并在终端中执行以下命令:

sudo xcode-select -s /Applications/Xcode8.2.1.app/Contents/Developer/

4. 编译安装Cupy

在终端中执行如下命令:

git clone https://github.com/cupy/cupy.git
cd cupy
MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py install

如果一切正常的话,应该会把cupy正确安装。

5.编译安装Chainer

在终端中执行如下命令:

wget https://github.com/chainer/chainer/archive/v3.2.0.tar.gz
tar xzf v3.2.0.tar.gz
cd chainer-3.2.0/
MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py install

如果一切正常,chainer会在你的系统上正确安装。

安装以后,可以切换到chainer-3.2.0/examples/mnist/目录下,运行:

python train_mnist.py -g 0

如果,系统抱怨找不到CUDA 8.0的动态链接库,你可以切换到\usr\local\cuda\lib目录下,用ln命令构造如下符号链接:

 libcublas.8.0.dylib -> /Developer/NVIDIA/CUDA-9.0/lib/libcublas.9.0.dylib
 libcudart.8.0.dylib -> /Developer/NVIDIA/CUDA-9.0/lib/libcudart.9.0.dylib
 libcurand.8.0.dylib -> /Developer/NVIDIA/CUDA-9.0/lib/libcurand.9.0.dylib
 libcusparse.8.0.dylib -> /Developer/NVIDIA/CUDA-9.0/lib/libcusparse.9.0.dylib
 libnvrtc.8.0.dylib -> /Developer/NVIDIA/CUDA-9.0/lib/libnvrtc.9.0.dylib

然后再执行

python train_mnist.py -g 0

系统就不应该报错了。

现在可以开始Chainer的学习了!