俺拍到一对可爱的小老鼠,情意绵绵!
工欲善其事,必先利其器!今天要谈谈购买深度学习机安装指南和流程!
深度学习是一种算法的革命,人工智能的火爆得益于深度学习算法的改进和开源,特别是云计算、大数据、深度学习和物联网计算的融合,人工智能在各个领域,特别是计算机视觉在图像处理、视频处理、人脸识别、声音和语音处理,以及自然语言的文本处理、语言翻译等领域都有了极大的提升,在一定程度上达到人类识别水平,甚至超过人类。
深度学习算法的主要框架是Tensorflow、Mxnet、PyTorch、Keras、PaddlePaddle、CNTK、Caffe2等,一般都在Python语言可以执行,主要是这些算法框架大部分都是开源的,都放在github仓库托管。
原则上如果玩深度学习可以在云服务上,比如AWS的EC2等快速部署深度学习环境,费用大致一小时一美金,但是如果将人工智能和深度学习作为一个重要的研究领域,购买深度学习机也是一种好的选择。
最初搜集了一些深度学习机的配置和市场情况,发现价格都非常贵,原本想自己组装,但这么多年一直用Mac电脑对硬件已经不熟悉了,恰好学院领导支持提供了资金,非常感谢学院领导的支持,购买了半成品深度学习机。
袁璐博士负责安装学习机,谈和博士协助,下面是她写的深度学习机安装流程和体验分享给大家。
2018年如约而至,木有晚一步,也木有早一步。你的to do list列好了吗?上一篇公号文章沈老师总结了一下俺们实验室新的一年要做的新内容学习方向,顿感压力倍增呀。但是,俗话说得好:鸭梨越大,动力越大。那么,今天我们就从装机起步,开始我们漫漫深度学习之路,一路上的成长,希望与大家知识共享。
深度学习之装机篇,正式开启
机器组装简要概述
在拿到深度学习机之后,你首先需要了解一下机器的配置。当然,这些配置更多的是根据你的工作需求在组装之前就应该了然于胸的。
我们实验室的深度学习机主要的配置如下:
1、经过对比分析,GPU选择4*GeForce1080TI,总的来说这款GPU型号性价比高一些。
这是深度学习GPU各个型号的对照表格,可以说是很全了。
深度学习机要考虑能耗,电源的功率要考虑。
当然成本也要考虑,最新的Tesla K100一块GPU就几千美金啦。
2、主板:选择华硕X99-E
3、CPU处理器:Intel 酷睿I7
4、电源、水冷等
这里重点提一下水冷装置,因为各种部件一起工作其实是一个很庞大的工程,因此选择水冷装置,给了机器很好的散热功效,这样也有利于机器的正常高效的运行。
这里提醒:因为运输问题,GPU开箱后有些安装错位,造成一周时间的调试延误。
设备实物如图。
PS.感觉机器每次运行时水冷“咕咚咕咚”的声音简直是再美秒不过了。
(PS.小熊是沈老师专门放进去的,是不是萌萌哒)
准备篇
有了深度学习机之后,你就可以开始开始你的深度学习之旅啦。我们的路径是这样,先拉取一个任务清单,详细写下要安装的软件,以及它们的用途,几者之间有没有什么依赖关系,这一点是为了避免,软件装好之后由于版本不对又得重新换。总而言之,整个安装过程要更有逻辑、更有条理一些。
系统环境:Ubuntu16.04。当下深度学习用的最多的系统应该就是Linux的Ubuntu系统了,图形界面和很好的开发环境,使得它备受开发者的喜欢。
安装显卡驱动:这一步一定要确保安装的正确,不然这深度学习你就别玩了。
CUDA 、Cudnn: 通过CUDA用户可以利用GPU进行计算,这是整个计算机的GPU加速框架。
安装Anaconda,Python3.6
Anaconda作为一款Python集成安装软件,简直是Python开发的必备神器,因为深度学习所需要用到的库基本已经涵盖,不需要另外安装,所以其重要性可见一斑。
安装Keras、TensorFlow、OpenCV:这些更不用说,是一定要装的,当然,具体用到哪一款,是需要你根据自己的项目选择的。
安装SSH:远程登录服务器,涉及到局域网和外网登录,但是命令很easy。
配置jupyter:界面化登录系统,学会使用之后,你会爱上jupyter的。
实战篇
第一步:系统安装
1)Ubuntu16.04
下载版本为官网直接下载ubuntu16.04.3的系统,之所有没有选择最新的17.10是考虑到各种环境的兼容性问题。
下载地址为官网:https://www.ubuntu.com/download/desktop
2)U盘引导盘系统
选择使用U盘引导盘安装,方便快捷。
使用工具:UniversalUSB Installer
找到一个容量足够的U盘,直接在win里安装UUI软件。将下载好的系统文件装进U盘
(注意,一定要用一个没有重要文件的U盘,不然所有的文件都会被格式化,你就只能哭了)。
3)开机后,不停按F2键,进入BIOS系统,选择U盘启动优先选项。这时,你的系统就进入一个选择安装的界面,你可以选择“安装“,一路”accpet“或者”yes“就行了。当然,这里会有一个坑,写出来希望可以帮助遇到相关问题的同学。
安装系统的坑:因为是多显卡原因,因此,在U盘引导启动的时候会遇到这样的情况,你的系统会以“5.921.261] nouveau 0000:01:00.0: fifo: SCHED_ERROR 08 []“不断刷屏,让你真的开始怀疑人生了。
有问题就有对应的填坑方法:u盘安装进入引导界面时,按键盘E键,在界面下方,对应quite splash后面添加nomodeset,然后Ctrl+c进入系统。 这样你就可以顺利的进入模拟的Linux系统,然后桌面有安装文件,你就可以一路安装咯。
友情提示:系统最好安装英文版本,因为中文版本真的会有很多坑。
第二步:显卡驱动安装
显卡驱动的安装只要按照步骤来,其实很简单。关键是你可能需要习惯一下win7到Linux的转化,即图像化的控制和命令行的控制方式之间的转变,这会让你极其的不适应。其实命令行模式真的很高(zhuang)效(x),只是初期会比较痛苦。
注意:驱动的安装不难,但是一定要按照步骤来,一步都不可以缺少,不然即使简单,你也会哭的,尤其显卡驱动这一步。显卡驱动装不好,后面就别想玩了。
下载驱动,进入NVIDIA官方网址选择你的驱动程序进行下载:https://www.geforce.cn/drivers
这时你下载的驱动是名为”NVIDIA-Linux-x86_64-384.98.run”的文件。
安装驱动流程为:进入命令行终端——禁用lightdm桌面服务——安装驱动——启用lightdm桌面服务——重启电脑
禁用nouveau驱动:sudo chmod666 /etc/modprobe.d/blacklist.conf
编辑配置文件:sudo vi/etc/modprobe.d/blacklist.conf
在文件末尾添加如下几行:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
修改并保存文件后,记得把文件属性复原:sudo chmod 644 /etc/modprobe.d/blacklist.conf
再更新一下内核:sudoupdate-initramfs -u
进入命令行模式的按键为:Ctrl + Alt + F1
禁用lightdm桌面服务:sudoservice lightdm stop。
安装驱动:sudo sh NVIDIA-Linux-x86_64-384.98.run
启用lightdm桌面服务:sudoservice lightdm start
重启电脑
安装好之后,验证驱动是否已经安装好:nvidia-smi
说明GPU驱动安装成功了!
第三步:CUDA、cudnn安装
步骤A:CUDA下载:https://developer.nvidia.com/cuda-80-ga2-download-archive
1)禁用nouveau:lsmod | grepnouveau
2)切换到命令行模式:Alt+Ctrl+F1
3)关闭图形化界面: sudo service lightdm stop
4)安装:sudo sh cuda_9.0.176_384.81_linux.run
5)启用lightdm桌面服务:sudoservice lightdm start
6)切换到桌面:Alt+Ctrl+F7
7)重启电脑
8)设置环境变量:sudo gedit /etc/profile
打开文件,添加两行:
exportPATH=/usr/local/cuda-7.5/bin/:$PATH
exportLD_LIBRARY_PATH=/usr/local/cuda7.5/lib64/:$LD_LIBRARY_PATH
9)重启电脑
10)检查CUDA是否安装成功:nvcc –V
11)尝试编译一些CUDA的例子:首先要安装一堆依赖库
$ sudo apt-get install freeglut3-dev
$ sudo apt-get install build-essential
$ sudo apt-get install libx11-dev
$ sudo apt-get install libxmu-dev
$ sudo apt-get install libxi-dev
$ sudo apt-get install ibgl1-mesa-glx
$ sudo apt-get install llibglu1-mesa
$ sudo apt-get install libglu1-mesa-dev
安装好后,在终端输入: $ make
编译生成的二进制文件。
编译后的二进制文件默认存放在~/NVIDIA_CUDA-X.X_Samples/bin中。
切换路径到release文件夹:
cd ~/NVIDIA_CUDA-X.X_Samples/bin/x86_64/linux/release
终端输入:$./deviceQuery
最后得到结果:
如果结果显示为pass,则代表编译通过,成功安装啦。
步骤B:Cudnn下载:https://developer.nvidia.com/rdp/cudnn-download
继续Ctrl+alt+F1进入的字符界面
进入解压后的cudnn-9.0-linux-x64-v7.0.tgz文件cuda,在终端执行下面的指令安装:
tar -zxvf cudnn-9.0-linux-x64-v7.0.tgz
cd cuda
sudo cp lib64/lib*/usr/local/cuda/lib64/
sudo cp include/cudnn.h/usr/local/cuda/include/
然后更新网络连接:
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.7.0.3 # 自己查看.so的版本
sudo ln -sf libcudnn.so.7.0.3.libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig
重新启动图形化界面
sudo service lightdm start
Ctrl+alt+F7进入图形界面。
第四步:Anaconda(含Python3.6)
下载软件包:https://repo.continuum.io/archive/
安装Python 3.6 version版本:bash Anaconda3-4.3.1-Linux-x86_64.sh
安装过程,一直点回车,当遇到下面的选择,注意输入yes:
Do you wish the installer to prepend the Anaconda2 install location
to PATH in your /home/gjq/.bashrc ?[yes|no]
[no] >>> yes
让.bashrc中添加的路径生效:source~/.bashrc
测试:出现anaconda则代表安装成功
第五步:更新镜像源:vi ~/.pip/pip.conf
然后写入如下内容并保存
[global]
trusted-host = mirrors.aliyun.com
index-url =http://mirrors.aliyun.com/pypi/simple
第六步:安装TensorFlow
安装好Anaconda后,需要创建TensorFlow的隔离环境:conda create -n tensorflow python=3.6;创建了tensorflow的隔离环境后,要做的是激活tensorflow环境,然后用pip安装TensorFlow:source activate tensorflow
接下来就是跟随Google tensorflow的安装向导,逐步开始安装TensorFlow: pip3install --upgrade tensorflow
测试一下我们安装的Tensorflow
检测tensorflow是否使用gpu进行计算
import tensorflow as tf
sess =tf.Session(config=tf.ConfigProto(log_device_placement=True))
第七步:安装Keras:这是深度学习的高级框架API
pip install keras
第八步:配置SSH:
这样可以在内网或外网通过另一台电脑远程使用深度学习机了
sudo apt-get install openssh-server
编辑配置文件:sudo vi/etc/ssh/sshd_config
找到:PermitRootLoginprohibit-password,注释掉此项
添加:PermitRootLoginyes
执行命令:sudoservice ssh restart
MAC用户使用:ssh 用户名@IP地址
第九步:远程登录jupyter
登陆远程服务器
生成配置文件:jupyter notebook --generate-config
生成密码
打开ipython,创建一个密文的密码:
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:XXXXXXXXX'
把生成的密文‘sha:ce…’复制下来
修改默认配置文件
$vim~/.jupyter/jupyter_notebook_config.py
进行如下修改:
c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha:XXX...刚才复制的那个密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8890 #随便指定一个端口
启动jupyter notebook:
$jupyter notebook
建立ssh通道在本地终端中输入:
ssh username@address_of_remote -L IP:8870:IP:8890
便可以在localhost:8870直接访问远程的jupyter了。
第十步:安装openCV:计算机图像视频处理都需要这个库
下载opencv3.2.0
需要下载opencv和opencv_contrib:
wgethttps://github.com/opencv/opencv/archive/3.2.0.zip
wgethttps://github.com/opencv/opencv_contrib/archive/3.2.0.zip
配置编译opencv (NVIDIA CUDA版本)
使用NVIDIA GPUGeForce 1080ti,则首先需要编译:
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.2.0/modules \
-D PYTHON_EXCUTABLE=/usr/bin/python \
-D WITH_CUDA=ON \ # 使用CUDA
-D WITH_CUBLAS=ON \
-D DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" \
-D CUDA_ARCH_BIN="5.3" \
-D CUDA_ARCH_PTX="" \
-D CUDA_FAST_MATH=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \
-D WITH_GTK=ON \
-D WITH_OPENGL=ON \
-D BUILD_EXAMPLES=ON ..
完成安装
安装完成以后,重启电脑。大功告成,可以起飞啦!
以下一组图就是实验室利用新装的深度学习机器,用OpenCV跑的程序,可以用来图像识别物体,初次尝鲜,感觉也是棒棒哒。
附:装机过程中也是遇到很多坑,不过沈老师给我们讲,这玩意儿就该装装拆拆的,多装几次就搞熟了,沈老师耐心值绝对满分,点赞N次方,比心。
最后,中国传媒大学新闻学院,大数据挖掘实验室祝各位老师同学新年快乐,在新的一年里,科研事业、生活,方方面面都能大丰收!也希望更多对大数据、人工智能、深度学习、可视化感兴趣的老师、同学与我们联系,多多交流学习,人工智能探索之旅,我们一起进步!
传媒大学的老师和同学有兴趣使用深度学习机的可以来46号楼308使用。
沈浩老师
中国传媒大学新闻学院教授、博士生导师
中国传媒大学调查统计研究所所长
大数据挖掘与社会计算实验室主任
中国市场研究行业协会会长
欢迎关注沈浩老师的微信公众号
欢迎关注沈浩老师任会长的市场研究协会
欢迎关注:灵动数艺
——数艺智训