简洁ubuntu+win10双系统深度学习环境搭建(装系统,代理,显卡驱动,conda)

183 阅读12分钟

简洁ubuntu+win10双系统深度学习环境搭建(装系统,代理,显卡驱动,conda)


最近实验室整理电脑,要新配置两台ubuntu,之前一直用conda蹭已有的环境,这次从零开始装的过程中发现网上很多资料写的不是很全面。

此外,装双系统的攻略往往没有后续配环境(各种代理,conda,显卡驱动)等的描述,在两者对接阶段,初学者往往纠结哪些是必须要做的。

综上,本文描述了如何从零搭建一台深度学习服务器环境,适合完美主义者和强迫症一次解决所有问题。全程顺利大约一小时。有些没写完,后续会更新。

PS:文中有些观点是自己的理解,欢迎大家评论中讨论指正。


本文将根据以下顺序搭建环境,初始环境为win10电脑一台,一个U盘。

目录如下,大家可以根据自己的情况跳过某些部分。

  1. 下载ubuntu
  2. 下载启动u盘制作软件 Rufus
  3. 制作启动u盘
  4. 确定磁盘空间
  5. 安装ubuntu
  6. 网络代理
  7. 显卡驱动
  8. conda全家桶
  9. 测试
  10. vscode
  11. 数据集
  12. 简单深度学习代码运行示例

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。一般只需要改一些文件路径之类的。