最近实验室整理电脑,要新配置两台ubuntu,之前一直用conda蹭已有的环境,这次从零开始装的过程中发现网上很多资料写的不是很全面。
此外,装双系统的攻略往往没有后续配环境(各种代理,conda,显卡驱动)等的描述,在两者对接阶段,初学者往往纠结哪些是必须要做的。
综上,本文描述了如何从零搭建一台深度学习服务器环境,适合完美主义者和强迫症一次解决所有问题。全程顺利大约一小时。有些没写完,后续会更新。
PS:文中有些观点是自己的理解,欢迎大家评论中讨论指正。
本文将根据以下顺序搭建环境,初始环境为win10电脑一台,一个U盘。
目录如下,大家可以根据自己的情况跳过某些部分。
- 下载ubuntu
- 下载启动u盘制作软件 Rufus
- 制作启动u盘
- 确定磁盘空间
- 安装ubuntu
- 网络代理
- 显卡驱动
- conda全家桶
- 测试
- vscode
- 数据集
- 简单深度学习代码运行示例
1.下载ubuntu
直接google或百度搜ubuntu官网下载即可。
官方下载链接 ubuntu.com/download/de…
官方下载
我下载的是18.04 LTS (long-term support)之前一台装的是16.04 LTS 安装过程和之后的使用,没什么太大区别,18.04可能对一些早期的库不太友好,所以根据自己的喜好自由选择。想下16.04要自己搜一下。
2. 下载启动u盘制作软件 Rufus
也是直接搜索引擎搜 Rufus 即可,我试过其它的启动盘制作软件,只有这个最好用,也是ubuntu官方教程里推荐的。
官方下载链接 rufus.ie/
点击Rufus 3.6 下载
3. 制作启动u盘
3.1. 安装rufus,我没注意它哪里选择语言,应该跟系统默认语言一致。
3.2. 打开后,插上u盘,在设备一栏选择自己的u盘。引导类型选择自己刚下载的ubuntu文件。其余选项默认即可。
插上u盘会自动检测到设备
3.3. 点击开始后会有一系列的更新需求和问题。都点确认即可。
格式化u盘
确定即可
一般都是选ISO
3.4. 完成 这边告一段落
完成截图
4. ubuntu安装路径
这一步无所谓安装在哪的可以直接跳过。
如果你某张盘全部都想用做ubuntu,可以跳过这一步,在安装分区的那一步,直接右键这个盘,选择delete,就会出现对应大小的空闲空间,想这样做的可以直接转第五步。
4.1. 安装硬盘orSSD
我这边教授让用几块新的硬盘用来装ubuntu,所以第一步是把硬盘装在电脑里,步骤如图所示,不需要的可以直接跳过这一步。
安装硬盘 不同主机方法不同
4.2. 从已经使用一部分的硬盘中划分剩余空间。
首先按下win+x键,选择磁盘管理。
选磁盘管理
之后我们可以看到磁盘的使用情况,选择你想装ubuntu的盘,右键选择压缩卷。
选中你要压缩的磁盘后右键
选压缩卷
在弹出的窗口选择你想用来装ubuntu空间的大小。确定压缩,之后出现绿色的一段空闲空间,证明压缩成功。
5. 安装ubuntu
5.1. 开机时按下delete键 进入启动设置界面
按del之后进入setup界面
5.2. 选择boot那一栏的第一项,回车,将第一项更改为USB之后按F10保存。这一步记录一下改动之前的启动顺序。之后要还原回去。
选boot的第一项
将第一个启动项换为USB
5.3. 进入ubuntu安装界面,选择安装ubuntu,语言建议大家选英语,因为做研究的小伙伴之后用到很多命令行,中文系统默认的一些文件名是中文的,文件名如果是中文的打起来很麻烦。在安装界面选择中文,安装之后切回英文也可以。
选择安装ubuntu
键盘布局选美式键盘,其实根据输入法都能调,无所谓的。
安装时附带应用我这边只选择了浏览器之类,即第二项。
一般选第二个
之后有操作系统的情况下,安装程序会检测出来并给你几个选项。共存,删除windows,自定义,这里第一个选项我没试过。如果对于ubuntu装在哪里无所谓,可以选择第一项,好处是不会出现问题,也不用设置启动项。
选自定义
为了清楚自己每个磁盘的分布情况,一般是在自定义选项里自己规定ubuntu装在哪里。选自定义之后进入分区阶段。
分区阶段,这部分众说纷纭,我对比了几份资料,正常学生使用比较合理的一种分区如下。具体原因可以参考链接 www.jianshu.com/p/f229cf403…
一共四个分区,一个主分区三个逻辑分区。我们实验室一般是home文件用来存每个人的数据。所以我把主要空间都给了home分区。
双击空闲空间,会让你选择文件格式,分区类型,挂载点,起始点,大小等。全选择从起始位置开始。
我这边现场格式化的,一般是双击空闲空间
分区类型 分区大小 文件格式 挂载点 备注
主分区 150G ext4 / 系统放这里,最小7G左右。
逻辑分区 2G ext4 /boot 操作系统内核之类。
逻辑分区 16G swap 一般物理内存大小
逻辑分区 余下全部 ext4 /home 我这边home用的比较多
主分区 挂载点/
全设置完这样
点击下一步,这里最好记住自己的分区名字
之后即可进行安装,后面还有一些位置,用户名和密码之类的问题,自由填写。安装及完成界面如下。
安装界面
安装完成
如果安装之后遇到grub界面,输入ls,显示error14,重新安装,在这一步文件格式所有的ext4改为ext3。
5.4. 重启及启动设置
安装完成后,重启依然需要进入启动设置界面(按delete)将第一项启动换回之前的磁盘,重启后直接进入Windows。
其实我发现安装easybcd并不是最优解,因为ubuntu有自己的引导系统,但easybcd方便自动查找boot分区。我这边暂时使用的easybcd。
搜索并安装EasyBCD。安装好之后打开界面如下:
esaybcd界面
点击添加新条目,之后选择linux,第一项选择grub2, boot位置选择分区时挂载boot的目录,或者自动加载,在这里我推荐自动加载。
主要设置第一项和第三项 名字随意
之后选编辑引导菜单,保存设置,重启后即可看到下图画面。之后即可正常进入ubuntu。至此系统安装完成。
我这边自己笔记本电脑截的图 正常应该还有一个linux
6. 网络代理
自己的电脑一般没这个问题,但多数情况下我们用的是实验室和公司的电脑,连的是公司和实验室的内网。需要设置代理才能进行外部访问。不过设置过程也很简单。用一些不需要设置代理网络的同学可以跳过这一步。 最简单的检查方法是打开浏览器随便开个网页。
6.1. 系统网络代理
设置代理过程,首先点击右上角,网络连接,选择设置,在代理的部分选择人工设置代理,之后输入自己的代理。
点进去之后一目了然
填入自己的网络代理
之后可以开个浏览器网页测试一下,没问题证明成功。
6.2. apt的网络代理
作为深度学习环境,还有一些必须配置代理的命令,apt就是其中之一。
更新apt代理的步骤如下
6.2.1. 为了防止vi上下左右变成adcd问题, 先输入如下命令行
右键 打开终端
6.2.2. 之后新建一个confg文件,输入下述命令,利用tab补全会方便很多。
sudo touch /etc/apt/apt.conf.d/proxy.conf
6.2.3. 用vi打开该文件
sudo vi /etc/apt/apt.conf.d/proxy.conf
6.2.4. 输入如下两行,不要忘记分号结尾。
Acquire::http::Proxy” your proxy:port ”;
Acquire::https::Proxy” your proxy:port ”;
6.2.5. 按esc之后 输入:wq保存。
6.2.6. 之后输入
sudo apt-get update
成功即证明代理设置完成。
7. 显卡驱动
这里大家比较在意的可能是显卡驱动+cuda+cudnn的匹配问题。如果想自己直接装在电脑上,不利用conda,可以先不装显卡驱动,直接去下载你想装的cuda.run文件,之后运行时会自动帮你装上显卡驱动。这种方式装的cuda可能需要手动配置环境变量,之后再手动下载对应版本的cudnn,配置环境变量。我这边是利用conda装的环境。
安装显卡驱动并没有很多教程上说的那么复杂,我在第一台电脑安装的时候查阅了许多资料,装起来很复杂还出现了一些bug。实际上我认为从零开始装显卡驱动应该是最简单的情况,显卡驱动安装软件也应该能handle住这种情况。事实证明确实是可以的。
7.1. 直接从官网根据自己的显卡型号下载.run文件
根据自己的型号选择
7.2. 我在安装显卡驱动过程中提示我缺少gcc和make,因此安装显卡驱动前大家可以先安装gcc和make,没有更新apt的可以顺便更新一下。
更新apt参照6的最后一步,之后输入
sudo apt install gcc
sudo apt install make
7.3. 在命令行中(右键 打开终端)输入如下命令,展示的图片中间有几行名字记错了,直接执行正确的即可。
具体的命令行
先是进入下载目录download,之后利用下述命令运行安装程序。
cd download
sudo chmod u+x Nvi…….run(打一个N用tab补全)
sudo .Nvi…….run(打一个.N用tab补全)
7.4. 首先会为你一个关于pre-install的问题,忽略即可。之后会提到Nouveau没有关闭,继续选择它将为你创建一个目录(总之理解为它为你关闭Nouveau)点确定。之后重启。
关于Nouveau这几步选确定
7.5. 重启之后分辨率变低了,再次打开终端,执行安装显卡驱动的命令。中间有一个是否重写lib,我选的是。是否x选否。之后安装完成,重启。
7.6. 重启之后分辨率恢复,打开终端,输入nvidia-smi检查一下。显卡驱动安装完成。同时cuda10.1安装完成。
检查显卡驱动
8. conda全家桶
最新的显卡驱动已经附带了cuda10.1,现在我们距离显卡驱动+cuda+cudnn还差 cudatoolkit这个包和cudnn,这两个在conda 安装gpu版本的tensorflow时都会自动安装。基本的环境就完成了。
8.1. 首先从官网下载conda,大约500M,(如果要四五分钟下载的同学可以像我一样在这段时间把10.vscode 装好)。之后运行,步骤如下。
我是用的3.7
8.2. 安装conda的过程中会有一些问题,包括同意协议并继续这种,以及问需不需要运行初始化文件,我这里选择需要。
yes 或回车即可
8.3. 关闭并再次打开终端,会发现前面多了conda的base环境,证明安装成功。
conda安装成功
8.4. 之后直接conda create 新环境一般是不行的,因为要设置conda的代理。
在命令行中输入下述命令
8.5. 直接在命令行输入如下命令。
conda create —name 你自己环境名 python=你想要的python版本。
conda activate 你的环境名
conda install tensorflow-gpu
如果这样说明要配代理
安装tensorflow
我这边一般用的是pytorch,这边用tensorflow做个例子。
9. 测试
安装完成输入
python
import tensorflow as tf
tf.Session()
产生如下画面证明成功。
10. vscode
我是在下载conda的时候顺便安装了,先去官网,下载一个linux下的vscode安装包。打开后输入账户密码即可自动安装。
直接下载
直接打开安装包即可
用touch新建一个文件 右键用vscode打开
网络连接正常 如果有问题要配置代理
11. 数据集
基本的环境就是这些了,我这边还自己装了pytorch,cocopytools之类的,总之缺什么库就直接搜索conda install xx库,conda官方一般会有对应的命令行。没有的一般是使用pip装。
我这边要用到coco数据集,所以在安装过程中顺便把coco数据集拷了一份到public目录。
12. 深度学习简单代码运行样例
这一步不同小伙伴要运行的代码不一样,但大体是这几个步骤。
首先你得大致浏览你要运行的代码的论文,不然有些时候readme都读不明白。
在负责任的github项目中,readme一般会有以下几个重点,需要的环境,如何运行test,如何运行train。
安装前readme中列举的环境,之后可以先运行test。一般只需要改一些文件路径之类的。