原文链接:
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在你主要使用的机器上安装一个客户端来连接到深度学习服务器上。根据你的客户端系统,
这里
有更多的指令。