关闭

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

1246人阅读 评论(0) 收藏 举报
分类:

这是一篇为机器搭建深度学习研究环境的详细指南,包括驱动程序、工具和各种深度学习框架的安装指导。在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在你主要使用的机器上安装一个客户端来连接到深度学习服务器上。根据你的客户端系统,这里有更多的指令。
0
0
查看评论

Linux下的make命令使用心得

本文译至:http://d.hatena.ne.jp/embedded/20140829/p1 为了使make命令执行并行处理,-j 选项可以用来指定作业数。 $ make -j4  作业数是在编译的时候指定主机的CPU个数,所以在脚本中写成一个常量很糟糕。(特别是把编译脚本给其他人...
  • qq_29350001
  • qq_29350001
  • 2016-07-12 10:26
  • 8754

Deep Learning 环境配置 2:ubuntu下anaconda安装以及多环境配置

anaconda里面集成了很多关于python科学计算的第三方库,主要是安装方便,而python是一个编译器,如果不使用anaconda,那么安装起来会比较痛苦,各个库之间的依赖性就很难连接的很好。为了使用方便,选择直接安装anaconda。 一、anaconda安装 1.下载anaconda ...
  • HUA_BEI
  • HUA_BEI
  • 2017-05-24 17:48
  • 1918

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

参考:http://geek.csdn.net/news/detail/77859 这是一篇为机器搭建深度学习研究环境的详细指南,包括驱动程序、工具和各种深度学习框架的安装指导。在64位Ubuntu 14.04的机器上使用Nvidia Titan X进行测试。 还有一些有类似目的的指南。一些内容...
  • qq_26898461
  • qq_26898461
  • 2016-06-01 22:28
  • 4142

深度学习与人脸识别系列(2)__深度学习的环境搭建(ubuntu+caffe)

直接去我同学博客看吧,不想整理了:http://blog.csdn.net/xyy19920105/article/details/50401620 或者直接看我的,我的就是按照官网的方法一步一步来的,比较繁琐,他的比我的简单,不容易出错。
  • wjmishuai
  • wjmishuai
  • 2016-02-13 11:21
  • 4100

深度学习图像处理Ubuntu环境搭建

深度学习图像处理Ubuntu环境搭建
  • github_35965351
  • github_35965351
  • 2017-12-20 18:32
  • 46

CNN基础及开发环境搭建(综合参考)

CNN基础及环境搭建 Author:王帅;Mail:mippr11.ws@gmail.com 目前,深度学习在解决图像分类,语音识别等问题上获得了已知的最优结果,该系列算法越来越受到学术界和工业界的重视。何为深度学习?一个直观的解释是如果一个机器学习算法在建模的过程中使用了多层的自动特征表示,则...
  • xuanyuansen
  • xuanyuansen
  • 2015-02-28 13:13
  • 7232

深度学习环境配置方法

两种方法配置深度学习环境: 1.      在开发机直接安装(注意可能引起其他依赖python运行的程序无法工作): sudo pip installtensorflow-1.2.0rc2-cp27-cp27mu-manylinux1_x8...
  • mlzhu007
  • mlzhu007
  • 2017-06-08 18:17
  • 598

GRU与LSTM总结

一、LSTM(长短期记忆网络) LSTM是一种特殊的RNN类型,一般的RNN结构如下图所示,是一种将以往学习的结果应用到当前学习的模型,但是这种一般的RNN存在着许多的弊端。举个例子,如果我们要预测“the clouds are in the sky”的最后一个单词,因为只在这一个句子的语境中...
  • bbbeoy
  • bbbeoy
  • 2018-01-03 18:48
  • 86

唐宇迪之tensorflow学习笔记项目实战(LSTM情感分析)

我们首先来看看RNN的网络结构,如下图所示 xt{x_t}表示第t,t=1,2,3…步(step)的输入 st{s_t}为隐藏层的第t步的状态,它是网络的记忆单元。 st=f(u×xt+w×st−1){s_t} = f\left( {u \times x{}_t + w \tim...
  • LIUSHAO123456789
  • LIUSHAO123456789
  • 2018-01-06 21:06
  • 306

ubuntu 16.04 + GTX 1080 DeepLearning工作站搭建

GTX 1080 + Ubuntu 16.04 + CUDA 8.0RC + cudnn+caffe安装教程
  • Loser__Wang
  • Loser__Wang
  • 2016-09-07 11:19
  • 4636
    个人资料
    • 访问:1944757次
    • 积分:22287
    • 等级:
    • 排名:第389名
    • 原创:102篇
    • 转载:1385篇
    • 译文:6篇
    • 评论:261条
    联系方式
    个人邮箱: xuxiduo@zju.edu.cn
    QQ群:
    1)OpenCV俱乐部
        186168905

    2) 视频/音频/图像/算法/ML
        群1:148111910

        群2:157103105

    备注:加群需要回答问题,避免广告党。
    如果你是博客看到后加的,请注明“博客”并回答问题,只注明”博客“不回答问题的恕不加入。答案为和群相关的任何技术名词,不能出现1)和2)中的任何字眼
    博客专栏
    文章分类
    最新评论