前言
Windows下的pytorch可以实现一些深度学习的项目,但是由于代码资源有限,且大多数github上的项目都是基于linux编写的,在尝试了许久windows下的环境设置之后,发现了许多系统层面的设置问题,所以我还是选择使用linux进行项目学习。
由于我之前使用过虚拟机来进行ros和ros2的项目,所以我首先想到能否用虚拟机,但由于深度学习主要是基于显卡的,而虚拟机在处理显卡方面有一些问题,所以我最后决定使用双系统。
我使用的电脑配置是
cpu:AMD® Ryzen 5 5600x 6-core processor × 12
gpu:NVIDIA Corporation GA104 [GeForce RTX 3070]
内存:32G
硬盘:固态1TB
主板:msi b550a-pro
1. 制作ubuntu的u盘启动文件
我安装的是目前最新的ubuntu lts版 Ubuntu 22.04.2 LTS,直接官网下载镜像版
u盘是8G的,最好是空的,后面也会自动格式化,使用rufus进行系统写入(github上下载)
这一步根据不同源,不同写入软件有着不同操作,但本质是一样的,可以根据自己查看不同的攻略
2. 安装ubuntu
首先是给ubuntu系统预留分区,因为我是打算进行深度学习,且我电脑文件不多,所以我打算预留300G给ubuntu,预留大小因个人需求和自己文件多少来决定。
右键windows界面左下角开始徽标,进入磁盘管理器,找到想要使用的磁盘空间,右键压缩卷,按照300G换算成MB输入即可分区完成。分区成功后300G空间上面的条会变成黑色的,而其他正常的会是蓝色的,要是300G是蓝色的,直接点击他的磁盘空间右键清空就会变成黑色的。
分区完成即可准备安装,由于我的主板是msi,重启后按del进入bios,将root里u盘放到系统启动前面,f10保存即可,msi界面直接拖动就可以完成,插入u盘后就自动进入了ubuntu安装,在黑白界面grub选择第一个try or install ubuntu即可。进入安装系统后语言-中文,布局-english,其他默认就好,重点是分区部分,由于我是一块ssd并且内存32G,所以我就直接默认安装了,自定义安装也可以参考别的教程,我也试过自定义安装,但是感觉区别不大,并且在之后尝试配置环境过程中经常操作失误,导致linux崩溃只能重装,所以我就为了方便默认安装了。
安装完成后,需要在bios里改变启动顺序,我的默认为先windows后ubuntu,这样会导致系统每次开机直接进入windows,msi主板是在启动-bbs里更改顺序,将ubuntu提前即可每次开机进入grub来选择进入的系统。注意将root启动顺序恢复成原来的样子。其他按照指示做就行,拔掉u盘,enter重启什么的。
3. nvidia driver 和cuda 安装
这一步比较重要,在完成最基本系统设置后,点开9个点的那个徽标,搜索software,进入软件和更新,点开附加驱动。
我显卡是3070,默认驱动是x.org x server这个,但在我后续安装cuda的时候出了很多问题,所以我打算重新安装一个驱动,我尝试了推荐的第一个和515-open但都出现了崩溃,所以最后我选择了这个目前在我电脑上很稳定的版本,造成不稳定的原因很多,因为我安装的时候系统里什么都没有,所以原因大概率是兼容性问题,我的电脑open版本全部会崩溃。
安装完driver后,终端输入nvidia-smi,看一下cuda,注意cuda可以向下兼容,我的是12.0,而后去pytorch官网点击get start,输入自己的型号,看一下兼容哪些cuda,我选的是cuda11.7。
cuda官网安装,重点是安装过程中选择不安装驱动,即第一个不选,其他默认。
4. 安装Anaconda3
官网安装anaconda3,但切记不要sudo安装,这样会安装到/root/,正常访问困难,直接bash即可,如果不小心安装到了/root/里,可以sudo su升级权限后 删除/root/anaconda3,具体ls看文件位置,我是按照官网的下载anaconda-clean清理后再删除文件的。
安装过程中记得最后一步要yes安装到环境变量
重启后有(base)就成功了
conda -V #查看版本
5. 创建虚拟环境,安装pytorch
把pytorch安装到虚拟环境里很重要,方便以后换环境。
创建新的环境,并激活。
conda create -n pytorch python=3.10 #创建新的pytorch
conda activate pytorch #激活pytorch环境
可以使用下列代码查看cuda信息,有人可能是version.txt。
cat /usr/local/cuda/version.json #查看cuda等信息
可以使用如下代码来验证环境变量是否设置成功
nvcc --version
如果显示未找到,就需要配置环境变量,输出cuda信息就是正确安装。配置方法为
nano /home/username/.bashrc #username是你的用户名
export PATH="/usr/local/cuda-11.7/bin:$PATH" #可以替换cuda-11.7到你的版本
export LD_LIBRARY_PATH="/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH"
#On you keyboard press the following:
#
#ctrl + o --> save
#enter or return key --> accept changes
#ctrl + x --> close editor
重启终端后再输入nvcc -V就正常了。
注意:下面代码是用来删除环境的
conda remove -n Pytorch –all #删除不用的虚拟环境,如不想要大写的P,删除一个重新创建一个
安装之前pytorch官网操作以及cuda版本,直接安装,我的是:
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
安装完成后
python #进入python
import torch
torch.cuda.is_available()
输出为true就安装成功gpu版了,false就是cpu版,torch模块未识别就安装失败了,前提是要在python下输入import torch。