深度学习指南:基于Ubuntu从头开始搭建环境

  • Post author:
  • Post category:其他


原文链接:

Setting up a Deep Learning Machine from Scratch (Software)


译者:刘翔宇 审校:赵屹华

责编:周建丁(zhoujd@csdn.net)

这是一篇为机器搭建深度学习研究环境的详细指南,包括驱动程序、工具和各种深度学习框架的安装指导。在64位Ubuntu 14.04的机器上使用Nvidia Titan X进行测试。

还有一些有类似目的的指南。一些内容有限,而另外一些则不是最新的。该指南基于(有些部分是复制来的):

目录

  • 基础知识
  • Nvidia驱动
  • CUDA
  • cuDNN
  • Tensorflow
  • OpenBLAS
  • 常用工具
  • Caffe
  • Theano
  • Keras
  • Torch
  • X2Go

基础知识

  • 首先,打开终端,运行以下命令确保你的操作系统是最新的
sudo apt-get update  
sudo apt-get upgrade  
sudo apt-get install build-essential  
sudo apt-get autoremove

安装git

sudo apt-get install git

Nvidia驱动

  • 查看显卡型号
lspci | grep -i nvidia
  • 到Nvidia官网查找你显卡对应的最新驱动和系统设置。你可以从此网站上下载并安装驱动,但这样做会升级到更新的驱动,并且卸载的时候会有些麻烦。此外,这么做需要你退出X服务会话,从终端进行安装,这比较麻烦。

  • 我们将使用apt-get来安装驱动。到

    “Proprietary GPU Drivers” PPA

    中查看是否有你最新的驱动。注意,最新的驱动一定是最稳定的。你也可以安装网页上推荐的驱动版本。添加”Proprietary GPU Drivers” PPA 资源库。在写这篇文章的时候,最新版本是361.42,然而推荐版本是352:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-352
  • 重启系统
sudo shutdown -r now
  • 检查以确保安装了正确版本的NVIDIA驱动
cat /proc/driver/nvidia/version

CUDA

  • 从Nvidia上下载CUDA7.5。然后到下载目录下安装CUDA
sudo dpkg -i cuda-repo-ubuntu1404*amd64.deb
sudo apt-get update
sudo apt-get install cuda
  • 添加CUDA到环境变量
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
  • 检查以确保安装了正确版本的CUDA
nvcc -V
  • 重启系统
sudo shutdown -r now

检查CUDA安装(可选)

  • 在CUDA安装目录安装样例。编译它们(需要几分钟):
/usr/local/cuda/bin/cuda-install-samples-7.5.sh ~/cuda-samples
cd ~/cuda-samples/NVIDIA*Samples
make -j $(($(nproc) + 1))


注意:

(-j $(($(nproc) + 1)))命令使用你机器上的核心数并行执行,所以编译会更快

  • 运行deviceQuery,确保它能检测到显卡并测试通过
bin/x86_64/linux/release/deviceQuery

cuDNN

  • cuDNN是为DNN设计的CPU加速库。它能在多种情况下帮助提升执行速度。为了下载cuDNN库,你需要到Nvidia网站

    https://developer.nvidia.com/cudnn

    上进行注册。几小时到几个工作日就能够批准。一旦注册批准,下载Linux版本的cuDNN v4。最新版本是cuDNN v5,但是不是所有的工具都支持。

  • 解压并复制文件

cd ~/Downloads/
tar xvf cudnn*.tgz
cd cuda
sudo cp */*.h /usr/local/cuda/include/
sudo cp */libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

检查

  • 你可以使用nvidia-smi 命令检查目前所有操作都正确。这应该会输出GPU的一些统计数据

Tensorflow

  • 安装v0.8版本与GPU兼容。下面的指令都来自于

    这里
sudo apt-get install python-pip python-dev sudo pip install --upgrade 
https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
  • 运行一个测试程序确保Tensorflow成功安装。当你执行import命令的时候,应该不会有警告/错误。
python
>>> import tensorflow as tf
>>> exit()

OpenBLAS

  • OpenBLAS是一个线性代数库,比Atlas更快。这一步是可选的,但要注意,下面的一些步骤假定你已经安装了OpenBLAS。你需要安装gfortran来编译它。
mkdir ~/git
cd ~/git
git clone https://github.com/xianyi/OpenBLAS.git
cd OpenBLAS
make FC=gfortran -j $(($(nproc) + 1))
sudo make PREFIX=/usr/local install
  • 将路径添加到LD_LIBRARY_PATH 变量中
echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc

常用工具

  • 为Scipy安装一些常用工具
sudo apt-get install -y libfreetype6-dev libpng12-dev
pip install -U matplotlib ipython[all] jupyter pandas scikit-image

Caffe

  • 下面的指令都来自于

    这里

    。第一步是安装所必须的文件
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
  • 克隆Caffe资源库
cd ~/git
git clone https://github.com/BVLC/caffe.git
cd caffe
cp Makefile.config.example Makefile.config
  • 如果你安装了cuDNN,取消Makefile中USE_CUDNN := 1 这一行的注释
sed -i 's/# USE_CUDNN := 1/USE_CUDNN := 1/' Makefile.config
  • 如果你安装了OpenBLAS,修改BLAS参数值为open
sed -i 's/BLAS := atlas/BLAS := open/' Makefile.config
  • 安装需要的文件,构建Caffe和测试,运行测试确保所有测试都通过。注意,这都需要一段时间。
sudo pip install -r python/requirements.txt
make all -j $(($(nproc) + 1))
make test -j $(($(nproc) + 1))
make runtest -j $(($(nproc) + 1))
  • 构建PyCaffe,Caffe的Python接口
make pycaffe -j $(($(nproc) + 1))
  • 将Caffe添加到环境变量中
echo 'export CAFFE_ROOT=$(pwd)' >> ~/.bashrc
echo 'export PYTHONPATH=$CAFFE_ROOT/python:$PYTHONPATH' >> ~/.bashrc
source ~/.bashrc
  • 测试确保Caffe安装成功。当执行import命令的时候应该不会有警告/错误。
ipython
>>> import caffe
>>> exit()

Theano

  • 安装所必须的文件,然后安装Theano。这些指令来自于

    这里
sudo apt-get install python-numpy python-scipy python-dev python-pip python-nose g++ python-pygments python-sphinx python-nose
sudo pip install Theano
  • 测试Theano安装。当执行import命令的时候应该不会有警告/错误。
python
>>> import theano
>>> exit()

Keras

  • Keras是围绕Theano和Tensorflow设计的一个有用的封装。默认情况下,它使用Theano作为后端。查看

    这里

    的指令以了解如何变更为Tensorflow。
sudo pip install keras

Torch

  • 下面安装Torch的指令来自于

    这里

    。安装会花一些时间
git clone https://github.com/torch/distro.git ~/git/torch --recursive
cd torch; bash install-deps;
./install.sh

X2Go

  • 如果你的深度学习机器不是主要工作机器,X2Go可以帮助你远程访问。X2Go是一个了不起的远程访问解决方案。你可以使用下面的命令在Ubuntu机器上安装X2Go服务。
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:x2go/stable
sudo apt-get update
sudo apt-get install x2goserver x2goserver-xsession
  • X2Go不支持统一桌面环境(Ubuntu的默认环境)。我发现XFCE效果不错。更多支持的环境在

    这里
sudo apt-get update
sudo apt-get install -y xfce4 xfce4-goodies xubuntu-desktop
  • 使用下面的命令查看机器的IP
hostname -I
  • 你可以使用上面的IP在你主要使用的机器上安装一个客户端来连接到深度学习服务器上。根据你的客户端系统,

    这里

    有更多的指令。



版权声明:本文为happytofly原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。