人工智能 | 深度学习机装机流程与体验

2018 年 1 月 7 日 沈浩老师 袁璐

俺拍到一对可爱的小老鼠,情意绵绵!


工欲善其事,必先利其器!今天要谈谈购买深度学习机安装指南和流程!



深度学习是一种算法的革命,人工智能的火爆得益于深度学习算法的改进和开源,特别是云计算、大数据、深度学习和物联网计算的融合,人工智能在各个领域,特别是计算机视觉在图像处理、视频处理、人脸识别、声音和语音处理,以及自然语言的文本处理、语言翻译等领域都有了极大的提升,在一定程度上达到人类识别水平,甚至超过人类。



深度学习算法的主要框架是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

    3CPU处理器:Intel 酷睿I7

    4、电源、水冷等

这里重点提一下水冷装置,因为各种部件一起工作其实是一个很庞大的工程,因此选择水冷装置,给了机器很好的散热功效,这样也有利于机器的正常高效的运行。

这里提醒:因为运输问题,GPU开箱后有些安装错位,造成一周时间的调试延误。


设备实物如图。

PS.感觉机器每次运行时水冷“咕咚咕咚”的声音简直是再美秒不过了。



PS.小熊是沈老师专门放进去的,是不是萌萌哒

准备篇



有了深度学习机之后,你就可以开始开始你的深度学习之旅啦。我们的路径是这样,先拉取一个任务清单,详细写下要安装的软件,以及它们的用途,几者之间有没有什么依赖关系,这一点是为了避免,软件装好之后由于版本不对又得重新换。总而言之,整个安装过程要更有逻辑、更有条理一些。


  1. 系统环境:Ubuntu16.04。当下深度学习用的最多的系统应该就是LinuxUbuntu系统了,图形界面和很好的开发环境,使得它备受开发者的喜欢。

  2. 安装显卡驱动:这一步一定要确保安装的正确,不然这深度学习你就别玩了。

  3. CUDA Cudnn: 通过CUDA用户可以利用GPU进行计算,这是整个计算机的GPU加速框架。

  4. 安装Anaconda,Python3.6

  5. Anaconda作为一款Python集成安装软件,简直是Python开发的必备神器,因为深度学习所需要用到的库基本已经涵盖,不需要另外安装,所以其重要性可见一斑。

  6. 安装KerasTensorFlowOpenCV:这些更不用说,是一定要装的,当然,具体用到哪一款,是需要你根据自己的项目选择的。

  7. 安装SSH:远程登录服务器,涉及到局域网和外网登录,但是命令很easy

  8. 配置jupyter:界面化登录系统,学会使用之后,你会爱上jupyter的。

 

实战篇



第一步:系统安装


1Ubuntu16.04

下载版本为官网直接下载ubuntu16.04.3的系统,之所有没有选择最新的17.10是考虑到各种环境的兼容性问题。

下载地址为官网:https://www.ubuntu.com/download/desktop


2U盘引导盘系统

选择使用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系统,然后桌面有安装文件,你就可以一路安装咯。

    

友情提示:系统最好安装英文版本,因为中文版本真的会有很多坑。


第二步:显卡驱动安装


显卡驱动的安装只要按照步骤来,其实很简单。关键是你可能需要习惯一下win7Linux的转化,即图像化的控制和命令行的控制方式之间的转变,这会让你极其的不适应。其实命令行模式真的很高(zhuang)效(x),只是初期会比较痛苦。


注意:驱动的安装不难,但是一定要按照步骤来,一步都不可以缺少,不然即使简单,你也会哭的,尤其显卡驱动这一步。显卡驱动装不好,后面就别想玩了。


下载驱动,进入NVIDIA官方网址选择你的驱动程序进行下载:https://www.geforce.cn/drivers


这时你下载的驱动是名为”NVIDIA-Linux-x86_64-384.98.run”的文件。

 
安装驱动流程为:进入命令行终端——禁用lightdm桌面服务——安装驱动——启用lightdm桌面服务——重启电脑

  1. 禁用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


  2. 进入命令行模式的按键为:Ctrl + Alt + F1

  3. 禁用lightdm桌面服务:sudoservice lightdm stop

  4. 安装驱动:sudo sh NVIDIA-Linux-x86_64-384.98.run

  5. 启用lightdm桌面服务:sudoservice lightdm start

  6. 重启电脑

  7. 安装好之后,验证驱动是否已经安装好:nvidia-smi



说明GPU驱动安装成功了!


第三步:CUDAcudnn安装


步骤ACUDA下载:https://developer.nvidia.com/cuda-80-ga2-download-archive

    1)禁用nouveaulsmod | 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

 

  1.  继续Ctrl+alt+F1进入的字符界面

  2.  进入解压后的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/

  3. 然后更新网络连接:

    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 

  4. 重新启动图形化界面

    sudo service lightdm start

  5. Ctrl+alt+F7进入图形界面。


第四步:Anaconda(含Python3.6)

下载软件包:https://repo.continuum.io/archive/

  1.     安装Python 3.6 version版本:bash Anaconda3-4.3.1-Linux-x86_64.sh

  2.     安装过程,一直点回车,当遇到下面的选择,注意输入yes

  3.     Do you wish the installer to prepend the Anaconda2 install location
         to PATH in your /home/gjq/.bashrc ?[yes|no]
         [no] >>> yes

  4.     .bashrc中添加的路径生效:source~/.bashrc

    

测试:出现anaconda则代表安装成功


第五步:更新镜像源:vi ~/.pip/pip.conf
然后写入如下内容并保存

 [global]

 trusted-host = mirrors.aliyun.com

 index-url =http://mirrors.aliyun.com/pypi/simple


第六步:安装TensorFlow

  1. 安装好Anaconda后,需要创建TensorFlow的隔离环境:conda create -n tensorflow python=3.6;创建了tensorflow的隔离环境后,要做的是激活tensorflow环境,然后用pip安装TensorFlowsource activate tensorflow

  2. 接下来就是跟随Google tensorflow的安装向导,逐步开始安装TensorFlow pip3install --upgrade tensorflow

  3. 测试一下我们安装的Tensorflow


检测tensorflow是否使用gpu进行计算

  1. import tensorflow as tf

  2. 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

  1. 登陆远程服务器

  2. 生成配置文件:jupyter notebook --generate-config

  3. 生成密码

    打开ipython,创建一个密文的密码:

    In [1]: from notebook.auth import passwd

    In [2]: passwd()

    Enter password:

    Verify password:

    Out[2]: 'sha1:XXXXXXXXX'

    把生成的密文‘sha:ce…’复制下来

  4. 修改默认配置文件

    $vim~/.jupyter/jupyter_notebook_config.py 
    进行如下修改:

    c.NotebookApp.ip='*'

    c.NotebookApp.password = u'sha:XXX...刚才复制的那个密文'

    c.NotebookApp.open_browser = False

    c.NotebookApp.port =8890 #随便指定一个端口

  5. 启动jupyter notebook

    $jupyter notebook

  6. 建立ssh通道在本地终端中输入:

       ssh username@address_of_remote -L IP:8870:IP:8890 
便可以在localhost:8870直接访问远程的jupyter了。



第十步:安装openCV:计算机图像视频处理都需要这个库

  1. 下载opencv3.2.0

    需要下载opencvopencv_contrib

    wgethttps://github.com/opencv/opencv/archive/3.2.0.zip

    wgethttps://github.com/opencv/opencv_contrib/archive/3.2.0.zip

  2. 配置编译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 ..

  3. 完成安装

   
安装完成以后,重启电脑。大功告成,可以起飞啦!


以下一组图就是实验室利用新装的深度学习机器,用OpenCV跑的程序,可以用来图像识别物体,初次尝鲜,感觉也是棒棒哒。


 

附:装机过程中也是遇到很多坑,不过沈老师给我们讲,这玩意儿就该装装拆拆的,多装几次就搞熟了,沈老师耐心值绝对满分,点赞N次方,比心。

 



最后,中国传媒大学新闻学院,大数据挖掘实验室祝各位老师同学新年快乐,在新的一年里,科研事业、生活,方方面面都能大丰收!也希望更多对大数据、人工智能、深度学习、可视化感兴趣的老师、同学与我们联系,多多交流学习,人工智能探索之旅,我们一起进步!



传媒大学的老师和同学有兴趣使用深度学习机的可以来46号楼308使用。


沈浩老师

中国传媒大学新闻学院教授、博士生导师

中国传媒大学调查统计研究所所长

大数据挖掘与社会计算实验室主任

中国市场研究行业协会会长


欢迎关注沈浩老师的微信公众号




欢迎关注沈浩老师任会长的市场研究协会

微信号:CMRA_2001





数艺智训
DAtraining

欢迎关注:灵动数艺

——数艺智训




数据艺术家
TableauHome



登录查看更多
7

相关内容

机器学习的一个分支,它基于试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的一系列算法。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
专知会员服务
54+阅读 · 2020年7月4日
商业数据分析,39页ppt
专知会员服务
160+阅读 · 2020年6月2日
一份循环神经网络RNNs简明教程,37页ppt
专知会员服务
172+阅读 · 2020年5月6日
深度学习自然语言处理概述,216页ppt,Jindřich Helcl
专知会员服务
212+阅读 · 2020年4月26日
专知会员服务
124+阅读 · 2020年3月26日
【综述】金融领域中的深度学习,附52页论文下载
专知会员服务
164+阅读 · 2020年2月27日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
一个阿里技术大牛对人工智能方向的看法
网易智能菌
8+阅读 · 2019年4月24日
中文课程!台大李宏毅机器学习公开课2019版上线
全球人工智能
14+阅读 · 2019年3月18日
2019年机器学习:追踪人工智能发展之路
人工智能学家
4+阅读 · 2018年10月14日
“搞机器学习没前途”
CSDN
236+阅读 · 2018年9月12日
这可能是最通俗易懂的深度学习科普文了
论智
6+阅读 · 2018年6月10日
为个人深度学习机器选择合适的配置
AI研习社
3+阅读 · 2017年12月2日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
Neural Image Captioning
Arxiv
5+阅读 · 2019年7月2日
Arxiv
8+阅读 · 2019年3月28日
Arxiv
12+阅读 · 2018年9月5日
Arxiv
3+阅读 · 2018年5月28日
Arxiv
17+阅读 · 2018年4月2日
Arxiv
6+阅读 · 2018年2月26日
VIP会员
相关VIP内容
专知会员服务
54+阅读 · 2020年7月4日
商业数据分析,39页ppt
专知会员服务
160+阅读 · 2020年6月2日
一份循环神经网络RNNs简明教程,37页ppt
专知会员服务
172+阅读 · 2020年5月6日
深度学习自然语言处理概述,216页ppt,Jindřich Helcl
专知会员服务
212+阅读 · 2020年4月26日
专知会员服务
124+阅读 · 2020年3月26日
【综述】金融领域中的深度学习,附52页论文下载
专知会员服务
164+阅读 · 2020年2月27日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
相关资讯
一个阿里技术大牛对人工智能方向的看法
网易智能菌
8+阅读 · 2019年4月24日
中文课程!台大李宏毅机器学习公开课2019版上线
全球人工智能
14+阅读 · 2019年3月18日
2019年机器学习:追踪人工智能发展之路
人工智能学家
4+阅读 · 2018年10月14日
“搞机器学习没前途”
CSDN
236+阅读 · 2018年9月12日
这可能是最通俗易懂的深度学习科普文了
论智
6+阅读 · 2018年6月10日
为个人深度学习机器选择合适的配置
AI研习社
3+阅读 · 2017年12月2日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
相关论文
Neural Image Captioning
Arxiv
5+阅读 · 2019年7月2日
Arxiv
8+阅读 · 2019年3月28日
Arxiv
12+阅读 · 2018年9月5日
Arxiv
3+阅读 · 2018年5月28日
Arxiv
17+阅读 · 2018年4月2日
Arxiv
6+阅读 · 2018年2月26日
Top
微信扫码咨询专知VIP会员