前言
随着学习的知识越来越多,本人也需要接触更多的智能化平台和技术,本文将记录深度学习环境搭建的过程,意在为更多配置环境而发愁的学生以及初学者解决无法正常配置环境的问题。经过三天的摸索,现将配置流程记录如下,其中包括了本人对环境配置的理解。一、电脑配置
看到CSDN上很多博客介绍如何配置环境,但大多数是在台式电脑上完成的配置,电脑配置较高,速度较快,本人则使用的是笔记本电脑。
1.电脑型号:21款华硕天选2
2.cpu型号:锐龙R7-5800H
3.显卡型号:NVIDIA-RTX3060-6G
4.内存:16G
5.硬盘容量:两块512G固态硬盘
6.Ubuntu型号:双系统Ubuntu18.04+win10
CPU问题:个人认为因特尔的CPU可能好一点,锐龙在价格上相对便宜,但是在后续使用上感觉还是因特尔好一点(上一个笔记本就是因特尔的CPU感觉更好一些),尽量选择8核CPU。
显卡问题:在显卡的选择上,个人认为显卡肯定是越新越好,出于价格的考量,20系列或者30系列对于初学者而言相当够用,当然这个是说NVIDIA显卡。对于A卡而言,相当不建议选择。
内存问题:内存越大越好,16G是起步。
硬盘容量:在Ubuntu下进行深度学习的训练是相当占用内存的,建议使用512G以上。
Ubuntu问题:建议使用18.04或者16.04,20.04也可使用但是没试过听人说好多bgu网上查不到解决方法。
二、关于Ubuntu18.04的问题
电脑第一块硬盘安装win10系统,第二块硬盘安装ubuntu18.04。
对于电脑配置的问题,因本人的笔记本是WIFI6,使用了联发科的网卡MT7961,在Ubuntu18.04下导致本人无法正常连接wifi网络,只能连接有限网络。对于这个问题也不是不能解决,查阅了大量的资料发现可通过升级Ubuntu的内核解决,最新的内核版本是支持这个网卡的,当然升级内核又会带来很多问题,如果遇到这个问题,我认为还是保守一些,连接网线使用,盲目升级内核可能导致很多软件无法正常开启;当然可选择安装更高版本的Ubuntu,但是高版本也会产生一些初学者无法解决的BUG。
三、安装显卡驱动
显卡驱动的安装可按照CSDN上步骤下载显卡驱动书手动安装,也可按照我的方法代码安装,建议代码安装,省事方便,基本不会出错(经验告诉我还是代码靠谱!!!下载驱动安装试了无数遍换了好几个版本,依然存在开机黑屏或者循环登陆或者停留在Ubuntu的logo界面无法进入图形界面问题!!!虽然网上解决方法很多,但是均以失败告终,也不知道那些神仙操作到底管用不,反正我是失败了)。
1.禁用系统自带显卡驱动
1.禁用bios中的secure boot,因为secure boot会阻止第三方源安装的驱动,禁用不会带来多大隐患。
这个环节依据电脑型号百度操作流程即可,一般不会出问题。
2.禁用nouveau驱动,这是Ubuntu默认的开源显卡驱动,与N卡驱动一起使用会导致兼容性问题,比如卡在登录界面无法进入图形界面。
1)打开配置文件
sudo gedit /etc/modprobe.d/blacklist.conf
2)在文件最后添加
blacklist nouveau
blacklist lbm-nouveau
options nouveau modset=0
alias nouveau off
alias lbm-nouveau off
保存退出。
3)更新系统
sudo update-initramfs -u
重启电脑
4)验证nouveau是否被禁用
lsmod | grep nouveau
如果没有任何输出,则表示禁用成功。
2.寻找可安装的驱动
打开——软件和更新
选择附加驱动,可看到自己电脑上的一些可使用的显卡驱动型号,若第一次打开则系统默认的是X.Org X server - Nouveau display driver这个驱动。我们需要将显卡驱动切换为NVIDIA的驱动,选择型号点击应用更改,等待系统自动配置好显卡驱动。
验证是否更改成功
nvidia-smi
如果输出如下,则表示切换成功
若没有现实出来,就需要代码安装,本人使用的是470的驱动,依据个人需求不同修改数字,前提是官网有的型号,只需要470就行,无需加小数点的数字。
sudo apt-get install nvidia-driver-470
至此显卡驱动安装完成,验证方式结果如上图一样。
3.CUDA安装
CUDA的选择是根据驱动最高支持版本(根据显卡驱动型号自行查阅)和PyTorch支持的版本安装,在这一部分,坑特多,建议先去PyTorch上看一下最高支持的CUDA版本,安装的CUDA版本不是越高越高,截止2022年2月16日,最高支持11.3版本的,那么我们可以选择安装11.3版本或者10.2版本,为了省事我直接安装了11.4版本,11.4版本对应了470显卡驱动最高支持的CUDA版本。
选择11.4基于两点原因,首先曾经尝试安装10.2或者11.3版本,出于稳定的考虑,结果在验证环节报错显卡型号与CUDA不对应。其次经过查阅资料发现,使用CUDA11.4也可顺利安装PyTorch的11.3那个版本。最主要还是省事,不浪费时间解决各种问题。
接下来进入到CUDA的安装,过程进入CUDA网站,选择自己的安装版本。
选择linux,x86_64,Ubuntu,18.04,deb(local)。安装时候就需要看下图的代码部分,一条一条复制到终端下进行安装。(保证成功!!!)
在这个过程中我曾遇到无法无法定位CUDA安装包问题,解决方法就是进入自己下载好的cuda安装包,按照图中路径找到中找到下图所示文件。将其复制到/etc/apt/sources.list.d下。不会复制参考这里。该问题原因是没有cuda的源,更新源不行,添加源即可。
配置环境变量:
打开文件目录,进入主目录,按下ctrl+H查看隐藏文件,选择**.bashrc**文件,添加下列代码修改环境变量。版本型号依据个人所需自行修改。
## CUDA 11版本
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.0/lib64
export PATH=$PATH:/usr/local/cuda-11.0/bin
export CUDA_HOME=/usr/local/cuda-11.0
## CUDA 11.4版本
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.4/lib64
export PATH=$PATH:/usr/local/cuda-11.4/bin
export CUDA_HOME=/usr/local/cuda-11.4
添加完成,执行source ~/.bashrc
更新一下。
执行 nvidia-smi
看是否报错,正确将显示下图
错误将提示错误信息,如果提示内核版本不匹配Failed to initialize NVML: Driver/library version mismatch,说明安装的CUDA和显卡驱动型不匹配,这个问题就需要重新安装了,卸载显卡驱动以及CUDA,代码如下:
sudo /usr/bin/nvidia-uninstall
sudo apt-get --purge remove nvidia-*
sudo apt-get purge nvidia*
sudo apt-get purge libnvidia*
sudo apt autoremove
查看电脑中的驱动版本sudo dpkg --list | grep nvidia-*
若不提示任何内容说明卸载完成,若提示说明电脑内还有驱动。
查看内核型号cat /proc/driver/nvidia/version
重新安装一次对应的型号的cuda和显卡驱动就好了。
最后查看版本验证安装是否完成nvcc -V
自此已完成了CUDA的安装。
4.Anaconda3安装
进入Anaconda3官网,选择linux版本的Anaconda3下载。
进入文件存放的目录在终端中打开
查看Anaconda
ls |grep An
给软件包安装权限
sudo chom a+x 文件名.sh
安装
sh 文件名.sh
安装时会让你进行选择:
第一个问题按回车,继续安装
第二个问题按q跳过合同阅读
第三个问题输入yes接受合同
第四个问题按回车或者输入自己的安装路径(建议默认安装,对初学者简单)
第五个问题选择yes,自动配置环境变量。
新开启一个终端,输入conda
自此安装完成。
4.PyTorch安装
进入PyTorch官网,选择对应版本的PyTorch。
复制安装代码
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
等待安装结束即可。
如果无法安装,可能是网络问题,建议科学上网,或者选择清华源,再去掉安装代码中的-c pytorch,等待安装完成即可。
测试是否安装成用GPU是否可用
ipython
import torch
flag = torch.cuda.is_available()
print(flag)
ngpu= 1
# Decide which device we want to run on
device = torch.device("cuda:0" if (torch.cuda.is_available() and ngpu > 0) else "cpu")
print(device)
print(torch.cuda.get_device_name(0))
print(torch.rand(3,3).cuda())
能到这里,恭喜你安装完成,环境配置完成!
总结
环境配置不易,不要相信一切貌似神奇的方法去修改已经配置好的环境,三思而后行。
本人方法以在本人电脑上安装完成,亲测可用,不存在重启黑屏等问题;也属于个例并不一定适用于每台电脑,如果有配置方面问题可留言共同探讨解决方案。