最近想要在linux下搭建深度学习框架,一方面用于学习,另一方面满足课题需要。我的设备是联想R7000-2020,配置是R5 4600H+GTX1650+500G固态+1T机械(比较拉),电脑装的是win10,为了满足日常需求,所以想着装个双系统(win+ubuntu),在ubuntu上配置深度学习。
我们需要提前准备好一个U盘(16g以上),用于制作系统启动盘。从下面这个网站可以下载ubuntu各版本的镜像,这里我下的是20.04.4。
清华大学镜像网站
注意选择发行版本的时候选Desktop liveDVD,这个版本是有桌面的。下载完之后就得开始制作启动盘了,可以用UtraISO软碟通来制作。直接从官网下载试用版就行软碟通官网。下载之后的制作方法如下:
ultraiso制作u盘启动盘教程图文详解
制作完成后就可以进行下一步操作了。
在windows硬盘中创建一个新的卷给ubuntu,便于新系统的安装。这一步很重要,如果处理不好,轻则需要重装ubuntu,重则电脑数据丢失。网上有很多教程说分个50G给ubuntu就好,实验证明,这是傻*行为,空间不够大,等需要的时候就晚了,还得删除其他文件腾地儿,甚至重装系统,难受的一批。由于我固态中存放的文件较多,没法分太多空间,所以我准备在机械硬盘中分出400G给ubuntu(其实有点多了)。创建新卷的方法可以参考下面这个
win7、win10磁盘分区
新建分区后,就可以把启动盘插上,准备安装系统了,进入开机进入bios,设置启动顺序,U盘第一,F10保存后会进入ubuntu安装界面。安装的过程网上教程有很多,我这里就贴一个Win10下UEFI环境安装Ubuntu 16.04双系统教程,但是里面分区的时候推荐的大小不要按照那个,可以参考我这个,主要还是efi和根目录。
| 名称| 大小
|–|–|–|
|efi|2-4g
| swap| 16g
|/|50g|
|/home|100g|
|/user|剩余全部
该方案是从官网下的最新的驱动,过程有点繁琐。
根据自己的显卡,从官网下载驱动英伟达官网
打开终端(ctrl+alt+T),按顺序输入以下代码
sudo apt-get install gcc
sudo apt-get update
sudo apt-get install make
一般安装的gcc都是9.4版本的了
打开终端(ctrl+alt+T),输入以下代码
sudo apt-get remove --purge nvidia*
sudo gedit /etc/modprobe.d/blacklist.conf 或者(blacklist-nouveau.conf)
在打开的blacklist.conf末尾添加
blacklist nouveau
options nouveau modeset=0
保存后,在终端输入如下代码,更新内核
sudo update-initramfs –u
然后输入reboot重启系统。重启后输入以下代码检查是否关闭驱动,没有输出表示关闭成功。
lsmod | grep nouveau
很多教程还需要安装LightDM,我安装了电脑会进不去系统,所以我就没安装,也没发现有什么异常。
5、进入到下载的英伟达驱动目录,默认是在下载里,我们从该目录进入终端。
按顺序输入以下代码
sudo chmod a+x NVIDIA-Linux-x86_64-460.84.run //对应自己下载的驱动名称
sudo ./NVIDIA-Linux-x86_64-460.84.run -no-x-check -no-nouveau-check -no-opengl-files
// 注意:后面三个选项的前面都是:减号“-”
其中
-no-x-check:安装驱动时关闭X服务
-no-nouveau-check:安装驱动时禁用nouveau
-no-opengl-files:只安装驱动文件,不安装OpenGL文件 (最重要)
安装过程中会弹出一些选项,根据需要选择就行(其实是我忘了咋选了)。安装完成后在终端输入 nvidia-smi可检测驱动是否已经安装。正常的是这样的:
该方案是从ubuntu自带的软件库里安装稳定版的驱动,过程很简单。
在终端输入以下代码
ubuntu-drivers devices
可以看到如下信息:
红色框部分表示推荐的驱动版本。我们直接运行以下代码,会自动安装推荐版本驱动。
sudo ubuntu-drivers autoinstall
安装完成后重启,输入nvidia-smi即可查看是否完成安装。
可以从官网下载CUDA下载,我下载的是11.1.0版本的CUDA。
在终端输入红框的代码即可下载并安装CUDA。在安装过程中注意取消第一项显卡驱动前面的X,因为CUDA自带显卡驱动,这样会造成重复安装,导致安装失败。
在终端输入
gedit ~/.bashrc
在打开的文件最后一行添加以下内容
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
最后再激活一下
source ~/.bashrc
在终端输入以下代码检查是否完成安装
nvcc -V
首先还得去官网下载cuDNN,下载需要注册登陆,要与CUDA版本对应。
下载完成后需要解压,在ubuntu里叫做提取,右键压缩包,就可以看到提取到此处,解压后,进入CUDA文件夹,并在该目录打开终端,输入以下代码
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/include/cudnn_version.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
即可完成文件的复制,之后输入cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
(老贼把验证文件移到cudnn_version.h里面了),出现以下界面表示安装成功。
Anaconda是一个开源的Python发行版本,包含了conda、Python等180多个科学包及其依赖项,可以用于包管理器和环境管理。比如A项目中用了Python2,而B项目使用Python3,而同时安装两个Python版本可能会造成许多混乱和错误,这是使用Anaconda就可以为不同的项目建立不同的运行环境。
PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch
进入清华镜像下载Anaconda,我下的版本是这个
下载完成之后进入安装包所在目录,使用bash指令进行anaconda安装:
bash Anaconda3-2020.11-Linux-x86_64.sh #改成自己下载的版本
一路yes就可以。最后输入以下代码检查是否完成安装
conda info
首先要使用Anaconda创建一个虚拟环境,用于安装pytorch,这一步很重要。在终端输入以下代码查看目前已有的虚拟环境。
conda info --envs
其中base后面的*表示基层或者当前的环境,在用户前面的括号也会显示当前的环境,输入以下代码创建新的虚拟环境
conda create --name torchEnv python=3.8
其中torchEnv表示创建的虚拟环境的名称,选择的python版本为3.8,创建完成后激活该环境
activate torchEnv
接下来要切换环境,在新环境中安装pytorch。按照以下顺序输入代码
# 查看已有的虚拟环境,选择你要切换到的虚拟环境
conda env list
#选择虚拟环境,这里我选择的是torchEnv
conda activate torchEnv
完成后不要关闭终端,前往pytorch官网,按照下图选择版本。
注意红框的命令,复制下来,并在后面加上以下代码
-i https://pypi.douban.com/simple/
表示从豆瓣源下载pytorch,完整的代码如下:
pip3 install torch==1.8.2+cu111 torchvision==0.9.2+cu111 torchaudio==0.8.2 -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html -i https://pypi.douban.com/simple/
完成后就可以准备下一步啦。
从官网下载社区版(专业版要钱),下载完成后解压缩,解压的方法就是右键提取到此处,进入加压后的文件夹,再进入bin,在bin目录下进入终端
在终端里输入以下代码,打开pycharm
sh pycharm.sh
打开之后会弹出一个小框,我们把它最大化就可以看到创建新项目,点击创建新项目,就进入了软件里面,汉化可以按照以下步骤
重启后就实现了汉化。同时,在工具-创建桌面条目可以生成桌面快捷方式。
按照以下步骤即可
选择我们在第四部分创建的torchEnv虚拟环境,确定后,重启即可。
我们试着在主程序输入以下代码,测试是否有问题。
import torch
# 创建tensor
x = torch.rand(4, 3)
print(x)
# 构造数据类型为long,数据是0的矩阵
x = torch.zeros(4, 3, dtype=torch.long)
print(x)
输出为
在这个过程中,遇到了一些小问题如下:
1、安装ubuntu时给efi分区太少(200M)不够用只能重装
2、第二次安装过程中,不小心把磁盘类型(F盘和G盘)变成了动态硬盘,只好把该盘里的东西移走,格式化硬盘后变回了基本硬盘。
3、安装pytorch时网不行,采用conda的方式下载不了,只能通过pip,同时清华源挂了,只好用豆瓣源下载。
4、下载pycharm后打开找不到创建项目的选项,原来是没有最大化(珍妮马荔浦)。
如果一切顺利的话,这次的教程就结束了,文中有些引用,就不一一列举了,有问题请在评论区留言,谢谢各位。(写了这么多给个赞不过分吧~)