搭建实用深度学习环境(Ubuntu16.10+Theano0.8.2+Tensorflow0.11.0rc1+Keras1.1.0)
在动手安装之前,首先要确定硬件,系统,准备安装软件的版本,确定这些软硬件之间是否相互支持或兼容。本文安装的主要环境和软件如下:
Ubuntu16.10+CUDA8.0(cudnn5.1,CNMEM)+Theano0.8.2+Tensorflow0.11.0rc1+Keras1.1.0
显卡型号为Quadro K6000。
深度学习的另外一个比较常用的开发环境是CAFFE,由于之前的很多大牛基于CAFFE做了很多注明的模型,且已经发布到网上,故这套框架更适合于应用。但CAFFE安装起来异常复杂,需要安装非常多的依赖库,以及OpenCv等软件。而且CAFFE框架比较死板,很难修改,个人认为不太适合科研。故本文不涉及CAFFE相关内容。
首先,感谢运维小哥帮我安装ubuntu16.10系统。进入系统后,打开终端,开始安装操作。注意,下面操作命令通常要加sudo,如果切换到超级用户则不需要加。
1. 安装编译环境
主要是make,cmake, gcc,g++,这是linux下最基本的开发环境,有些机器是安装好的,就不用装了。运行每一句终端显示都有反馈,可以根据反馈确定安装是否成功。
sudo apt-get install build-essential
apt install cmake
gcc最新版本是6.2,但CUDA8.0不支持5.0以上版本,需要将版本降低到4.9,下面通过update-alternatives来进行软件版本切换:
sudo apt-get install g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
通过 gcc –v可以查询gcc版本,确定是4.9。
2. 安装CUDA
CUDA是Nvidia公司开发的,基于GPU的并行计算环境,几乎是做深度学习不可或缺的工具,加速效果非常明显。以一个基于Theano的深度模型训练程序为例,普通i5 CPU跑一个epoch需要约80分钟;采用GTX705显卡(48个CUDA核心)加速,跑一个epoch需要约12分钟;采用Quadro K6000显卡(2880个CUDA核心)加速,跑一个epoch仅需要约2分钟。
a) 准备工作
如果安装了用户界面,需要停止X server
sudo /etc/init.d/lightdm stop
sudo /etc/init.d/lightdm status
停止系统自带驱动
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
在最后加入一行blacklist nouveau保存,更新一下
sudo update-initramfs -u
重启,通过如下命令确定nouveau被停用,如果返回值为空说明成功。
lsmod | grep nouveau
b) CUDA包安装
下载cuda_8.0.44_linux.run,我是通过本地下载,通过ftp传到服务器,进入其所在目录,终端中运行:
sh cuda_8.0.44_linux.run
按提示逐步做选择,安装即可。如果之前没有单独安装nvidia的驱动,可以直接在这里选择安装;如果已经安装,则在安装过程中跳过,直接安装cuda和samples。
安装完成后,需要将CUDA的相关路径加入系统路径,用vim打开 ~/.bashrc 文件
vim ~/.bashrc
在文件未尾,加入如下语句来使设置生效:
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
c) 测试CUDA
进入samples所在路径,make
cd /usr/local/cuda/samples
sudo make all -j8
cd bin/x86_64/linux/release/
./deviceQuery
查询出设备信息说明CUDA安装成功
至此,基本的CUDA环境已经完成,但还有两个库可以让计算加速效果更明显,它们是cudnn和cnmem
d) 安装cudnn
cudnn是Nvida专门针对深度神经网络开发的加速包,一定要注意,一些低端的显卡,如GTX580,670,705等不支持cudnn。同时也要注意,cudnn的版本要与CUDA的版本兼容。
下载cudnn-8.0-linux-x64-v5.1.solitairetheme8,解压
cp cudnn-8.0-linux-x64-v5.1.solitairetheme8 cudnn-8.0-linux-x64-v5.1.tgz
tar -xvf cudnn-8.0-linux-x64-v5.1.tgz
进入解压目录,分别复制h文件和lib文件到cuda的响应目录,进入include目录
sudo cp cudnn.h /usr/local/cuda/include/
再进入lib64目录下的动态文件进行复制和链接:
sudo cp lib* /usr/local/cuda/lib64/
目前的Theano版本与cudnn5.0是兼容的,推荐安装5.0版本。
e) 安装CNMEM
进入安装目录
cd $mydir
git clone https://github.com/NVIDIA/cnmem.git cnmem
cd cnmem
mkdir build
cd build
cmake ..
make
cd ../include
cp cnmem.h /usr/local/cuda/include
cd ../build
cp libcnmem /usr/local/cuda/lib64
3. 安装theano
先安装pip,然后安装theano,theano安装过程中会自动安装numpy和scipy
sudo apt install python-pip
pip install theano
创建~/.theanorc,内容如下
[global]
floatX=float32
device=gpu
base_compiledir=~/external/.theano/
allow_gc=False
warn_float64=warn
[mode]=FAST_RUN
[nvcc]
fastmath=True
[cuda]
root=/usr/local/cuda
[lib]
cnmem=1
在终端中输入python
>>> import theano
输出正常说明安装成功。
4. 安装Tensorflow
如果之前没有安装好python,运行:
sudo apt-get install python-pip python-dev
用pip安装tensorflow
sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc1-cp27-none-linux_x86_64.whl
因为墙的原因,可能会失败,需要多试几次
测试tensorflow
在终端中输入python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print sess.run(hello)
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print sess.run(a+b)
42
5.
安装Keras
Keras之前是以Theano为后台,现在的新版本是以tensorflow为后台的。所以我们要先装好theano和tensorflow之后,最后安装keras。
sudo pip install
keras
对,就这一句话应该就搞定了。安装完成后,在终端输入python
from keras.models
import Sequential
输出正常说明安装成功。
至此,一个比较实用的最新版本深度学习环境就完成了。上述这些软件目前更新非常快,很有可能几个月后就会出现更新版本。安装过程中遇到任何问题,尽量去读官方的安装和说明文档,网络博客,微信上的信息都有一定时效性,包括我这一篇。
在动手安装之前,首先要确定硬件,系统,准备安装软件的版本,确定这些软硬件之间是否相互支持或兼容。本文安装的主要环境和软件如下:
Ubuntu16.10+CUDA8.0(cudnn5.1,CNMEM)+Theano0.8.2+Tensorflow0.11.0rc1+Keras1.1.0
显卡型号为Quadro K6000。
深度学习的另外一个比较常用的开发环境是CAFFE,由于之前的很多大牛基于CAFFE做了很多注明的模型,且已经发布到网上,故这套框架更适合于应用。但CAFFE安装起来异常复杂,需要安装非常多的依赖库,以及OpenCv等软件。而且CAFFE框架比较死板,很难修改,个人认为不太适合科研。故本文不涉及CAFFE相关内容。
首先,感谢运维小哥帮我安装ubuntu16.10系统。进入系统后,打开终端,开始安装操作。注意,下面操作命令通常要加sudo,如果切换到超级用户则不需要加。
1.
安装编译环境
主要是make,cmake, gcc,g++,这是linux下最基本的开发环境,有些机器是安装好的,就不用装了。运行每一句终端显示都有反馈,可以根据反馈确定安装是否成功。
sudo apt-get
install build-essential
apt install cmake
gcc最新版本是6.2,但CUDA8.0不支持5.0以上版本,需要将版本降低到4.9,下面通过update-alternatives来进行软件版本切换:
sudo apt-get install g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
通过 gcc –v可以查询gcc版本,确定是4.9。
2.
安装CUDA
CUDA是Nvidia公司开发的,基于GPU的并行计算环境,几乎是做深度学习不可或缺的工具,加速效果非常明显。以一个基于Theano的深度模型训练程序为例,普通i5 CPU跑一个epoch需要约80分钟;采用GTX705显卡(48个CUDA核心)加速,跑一个epoch需要约12分钟;采用Quadro K6000显卡(2880个CUDA核心)加速,跑一个epoch仅需要约2分钟。
a) 准备工作
如果安装了用户界面,需要停止X server
sudo
/etc/init.d/lightdm stop
sudo
/etc/init.d/lightdm status
停止系统自带驱动
sudo vim
/etc/modprobe.d/blacklist-nouveau.conf
在最后加入一行blacklist nouveau保存,更新一下
sudo
update-initramfs -u
重启,通过如下命令确定nouveau被停用,如果返回值为空说明成功。
lsmod | grep
nouveau
b) CUDA包安装
下载cuda_8.0.44_linux.run,我是通过本地下载,通过ftp传到服务器,进入其所在目录,终端中运行:
sh
cuda_8.0.44_linux.run
按提示逐步做选择,安装即可。如果之前没有单独安装nvidia的驱动,可以直接在这里选择安装;如果已经安装,则在安装过程中跳过,直接安装cuda和samples。
安装完成后,需要将CUDA的相关路径加入系统路径,用vim打开 ~/.bashrc 文件
vim ~/.bashrc
在文件未尾,加入如下语句来使设置生效:
export
PATH=$PATH:/usr/local/cuda/bin
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
c) 测试CUDA
进入samples所在路径,make
cd /usr/local/cuda/samples
sudo make all -j8
cd bin/x86_64/linux/release/
./deviceQuery
查询出设备信息说明CUDA安装成功
至此,基本的CUDA环境已经完成,但还有两个库可以让计算加速效果更明显,它们是cudnn和cnmem
d) 安装cudnn
cudnn是Nvida专门针对深度神经网络开发的加速包,一定要注意,一些低端的显卡,如GTX580,670,705等不支持cudnn。同时也要注意,cudnn的版本要与CUDA的版本兼容。
下载cudnn-8.0-linux-x64-v5.1.solitairetheme8,解压
cp cudnn-8.0-linux-x64-v5.1.solitairetheme8
cudnn-8.0-linux-x64-v5.1.tgz
tar -xvf
cudnn-8.0-linux-x64-v5.1.tgz
进入解压目录,分别复制h文件和lib文件到cuda的响应目录,进入include目录
sudo cp cudnn.h
/usr/local/cuda/include/
再进入lib64目录下的动态文件进行复制和链接:
sudo cp lib*
/usr/local/cuda/lib64/
目前的Theano版本与cudnn5.0是兼容的,推荐安装5.0版本。
e) 安装CNMEM
进入安装目录
cd $mydir
git clone
https://github.com/NVIDIA/cnmem.git cnmem
cd cnmem
mkdir build
cd build
cmake ..
make
cd ../include
cp cnmem.h
/usr/local/cuda/include
cd ../build
cp libcnmem /usr/local/cuda/lib64
3.
安装theano
先安装pip,然后安装theano,theano安装过程中会自动安装numpy和scipy
sudo apt install
python-pip
pip install theano
创建~/.theanorc,内容如下
[global]
floatX=float32
device=gpu
base_compiledir=~/external/.theano/
allow_gc=False
warn_float64=warn
[mode]=FAST_RUN
[nvcc]
fastmath=True
[cuda]
root=/usr/local/cuda
[lib]
cnmem=1
在终端中输入python
>>>
import theano
输出正常说明安装成功。
4.
安装Tensorflow
如果之前没有安装好python,运行:
sudo apt-get
install python-pip python-dev
用pip安装tensorflow
sudo pip install
--upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc1-cp27-none-linux_x86_64.whl
因为墙的原因,可能会失败,需要多试几次
测试tensorflow
在终端中输入python
>>>
import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print sess.run(hello)
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print sess.run(a+b)
42
5.
安装Keras
Keras之前是以Theano为后台,现在的新版本是以tensorflow为后台的。所以我们要先装好theano和tensorflow之后,最后安装keras。
sudo pip install
keras
对,就这一句话应该就搞定了。安装完成后,在终端输入python
from keras.models
import Sequential
输出正常说明安装成功。
至此,一个比较实用的最新版本深度学习环境就完成了。上述这些软件目前更新非常快,很有可能几个月后就会出现更新版本。安装过程中遇到任何问题,尽量去读官方的安装和说明文档,网络博客,微信上的信息都有一定时效性,包括我这一篇。
搭建实用深度学习环境(Ubuntu16.10+Theano0.8.2+Tensorflow0.11.0rc1+Keras1.1.0)的更多相关文章
- 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)
写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...
- ubuntu16.04+七彩虹GTX1060的NVIDIA驱动+Cuda8.0+cudnn5.1+tensorflow+keras搭建深度学习环境【学习笔记】【原创】
平台信息:PC:ubuntu16.04.i5.七彩虹GTX1060显卡 作者:庄泽彬(欢迎转载,请注明作者) 说明:参考了网上的一堆的资料搭建了深度学习的开发环境,下班在宿舍折腾了好几个晚上才搞定,写 ...
- 深度学习环境搭建:Tensorflow1.4.0+Ubuntu16.04+Python3.5+Cuda8.0+Cudnn6.0
目录 深度学习环境搭建:Tensorflow1.4.0+Ubuntu16.04+Python3.5+Cuda8.0+Cudnn6.0 Reference 硬件说明: 软件准备: 1. 安装Ubuntu ...
- Ubuntu16.04 + CUDA9.0 + cuDNN7.3 + Tensorflow-gpu-1.12 + Jupyter Notebook 深度学习环境配置
目录 一.Ubuntu16.04 LTS系统的安装 二.设置软件源的国内镜像 1. 设置方法 2.关于ubuntu镜像的小知识 三.Nvidia显卡驱动的安装 1. 首先查看显卡型号和推荐的显卡驱动 ...
- 教你如何用Docker快速搭建深度学习环境
本教程搭建集 Tensorflow.Keras.Coffe.PyTorch 等深度学习框架于一身的环境,及jupyter. 本教程使用nvidia-docker启动实例,通过本教程可以从一个全新的Ub ...
- 基于Ubuntu+Python+Tensorflow+Jupyter notebook搭建深度学习环境
基于Ubuntu+Python+Tensorflow+Jupyter notebook搭建深度学习环境 前言一.环境准备环境介绍软件下载VMware下安装UbuntuUbuntu下Anaconda的安 ...
- linux系统下深度学习环境搭建和使用
作为一个AI工程师,对Linux的一些技能的掌握也能从一定层面反应工程师的资深水平. 要求1:基于SSH的远程访问(本篇文章) 能用一台笔记本电脑,远程登陆一台linux服务器 能随时使用笔记本电脑启 ...
- Win10+RTX2080深度学习环境搭建:tensorflow、mxnet、pytorch、caffe
目录 准备工作 设置conda国内镜像源 conda 深度学习环境 tensorflow.mxnet.pytorch安装 tensorflow mxnet pytorch Caffe安装 配置文件修改 ...
- [AI开发]centOS7.5上基于keras/tensorflow深度学习环境搭建
这篇文章详细介绍在centOS7.5上搭建基于keras/tensorflow的深度学习环境,该环境可用于实际生产.本人现在非常熟练linux(Ubuntu/centOS/openSUSE).wind ...
随机推荐
- GitHub 热点速览 Vol.35:Let's Go,Rust 大放异彩
摘要:语言之争,一直存在于各类社群,不论是单个编程语言的交流群,亦或是 NoSQL.云开发等技术群,总能看到"要不要换 Go"."Rust 比 C++ 更强"的 ...
- Android开发之清除缓存功能实现方法,可以集成在自己的app中,增加一个新功能。
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 Android开发之清除缓存功能实现方法,可以集成在自己的app中,增加一个新功能. 下面是一个效果图 ...
- Android开发之最火的开源框架之一Xutils2详解(摘自开源作者官方介绍详解)
此框架说实话还是挺不错的,挺好用的,功能多,所以我也用过. 由于CSDN博客写的字数有限制,所以全文的用法打包成了markdown 文件,因为markdown真的太还用了. 全文下载地址为: http ...
- 初学WebGL引擎-BabylonJS:第6篇-碰撞交错与挑选
[playground]-collisions(碰撞) 先贴官方源码(机器翻译版本) var createScene = function () { var scene = new BABYLON.S ...
- Unity中利用柏林噪声(perlinnoise)制作摇摆效果
perlinnoise是unity中Mathf下的一个函数,需要两个float参数x和y进行采样,返回一个0-1的float型. 项目里经常要随机摇摆某些东西,比如摄像机,某个随机运动的目标等等,都可 ...
- 重要bug记录
导唱功能:需求点分析:本地已下载歌曲播放,判断是否有音频原唱伴奏版权,无版权按钮显示“导唱”,有版权显示“播原唱”.程序实现逻辑: 1.下载歌曲时调用一个歌曲信息接口,返回歌曲的一些属性信息,其中包括 ...
- Linux—账号管理及命令使用详解
关注微信公众号:CodingTechWork,一起学习进步. 引言 在Linux系统中,我们常常会看到目录或文件的所属关系: [root@linux01 ~]# ll -d test.sh -rw ...
- 小程序开发-开发模式下关闭http域名校验
小程序开发模式去掉域名校验 我们在开发小程序的时候如果用到其他网络地址,在小程序运行时调试器会输出 : http://www.example.com 不在以下 request 合法域名列表中,请参考文 ...
- 创建DBA用户luna
用system/pswd登陆sql plus,执行下面命令: 请输入用户名: system 输入口令: 连接到: Oracle Database 11g Enterprise Edition Rele ...
- Sentinel使用
Sentinel控制台的功能主要包括:流量控制.降级控制.热点配置.系统规则和授权规则等 # 安装sentinel的控制台 ## 下载地址 Sentinel控制台下载地址: https://githu ...