CUDA+Anaconda+Pytorch环境安装

发布时间:2024年01月18日

本文针对的为Windows+N卡的攻略。

CUDA:

首先查看电脑能支持的CUDA版本:

nvidia-smi

如图我的电脑支持的CUDA最高版本为12.2 :

当然也可以在NVIDIA控制面板查看:NVIDIA控制面板>帮助>系统信息>组件

?这两者应该是相同的,接下来进入官网下载想要的版本:
链接:CUDA Toolkit Archive | NVIDIA Developericon-default.png?t=N7T8https://developer.nvidia.com/cuda-toolkit-archive选择系统即版本后进行下载:

?进行安装,这里我采取的都是默认的路径(C盘容量够):

?跟着默认全选即可:

?这个路径记录一下:

?之后同意相关条框安装,完毕后重启电脑安装完成:

此时默认添加了以下的系统变量:

查看安装是否成功:

nvcc -V

如果有以下内容则安装成功

?Anaconda:

下载安装:

在官网下载即可:
Free Download | Anacondaicon-default.png?t=N7T8https://www.anaconda.com/download/

?开始安装:

设置安装路径:

?这里第一个选项是船舰开始菜单快捷方式,第二个是将Anaconda3加入环境变量中,没必要选(它也不推荐选),第三个则是将python3.11作为Anaconda的默认解释器,这个与Windows设置的python默认解释器是不冲突的,比如系统默认的是3.9,那么安装完成后,打开Anaconda Prompt终端下的python环境是3.11,而系统的cmd是3.9,建议勾选。

?

?安装完成:

验证一下两个python有没有打架:它们是按照上面的规则来的。

个人理解:Anaconda的作用是提供一个管理环境的平台,你可以在此平台创建许多虚拟环境,这些虚拟环境之间是相互隔离的(每个环境都有自己的python解释器),一个环境崩了不会影响其他的。其实之前我是不想装Anaconda,也不想创建这么多虚拟环境的,我想把所有的库都装一个环境里,这样我所有的项目都用这个环境不是很方便吗?环境怎么会那么容易崩?但是当一个环境里的东西太多之后,只是打开这个环境所需很长时间了,万一环境崩了直接寄掉。其实Pycharm也是可以创建虚拟环境的,但是对我来说还是Anaconda对于环境的管理更方便,不用Pycharm还有一个原因就是只有专业版才能用jupyter(当然可以破解)。

?组件解释:

安装成功后会有以下内容:

①Anaconda Prompt与Anaconda PowerShell Prompt:

Anaconda的终端,许多操作都要基于此展开,使用上没有区别,后者是基于PowerShell的,我习惯用前者。

②jupyter:

很大的一个优点即可以分块执行,能很大的节约时间。Anaconda中是默认安装jupyter的,有两种打开方式,均是在Anaconda Prompt执行命令:

Ⅰ:

jupyter notebook

将输出的url用浏览器打开即可,它会按照默认路径打开文件夹,这个可以修改。

?Ⅱ:

jupyter lab

?将输出的url用浏览器打开即可,同样会按照默认路径打开文件夹,可以修改。

我比较喜欢用这个, 界面好看。

环境创建、导入:

①创建虚拟环境:

在Anaconda Prompt中,创建虚拟环境,在Anaconda Prompt下执行以下命令:

conda create -n My_venv1 python=3.9

?My_venv1是虚拟环境的名字,起自己喜欢的就行,后面python=3.9是设置此环境的解释器版本。

但是现在只是创建完成,jupyter中并没有相关的环境:

将此环境添加到jupyter的内核中:

python -m ipykernel install --name My_venv1

?此时刷新一下,就可以在jupyter中选择相关的环境了:

之后进入此环境:

conda activate My_venv1

?然后就可以对此环境进行第三方库的安装了。

②导入虚拟环境:

先查看下现在有的环境:

conda env list

导入环境的命令,注意这里需替换为个人的目录,目录是存放虚拟环境的路径:

conda config --append envs_dirs E:\Anaconda_envs

?导入成功:

将此环境添加到jupyter的内核中:

python -m ipykernel install --name pytorch_pz

至此导入完毕。?

③解决Jupyter的显示和实际内核版本不一致问的题:

进入jupyter lab,创建项目,将内核换为我们创建的My_venv1,执行以下代码:

import platform   #导入platform模块
 
print('python版本:', platform.python_version())  #打印python版本
print('python版本:', platform.python_version_tuple())  #打印python版本
print('python实现方式:', platform.python_implementation())  #打印python实现方式
print('python版本分支:', platform.python_branch())  #打印python版本分支
print('python版本修订:', platform.python_revision())  #打印python版本修订
print('python编译信息:', platform.python_build())  #打印python编译信息
print('python编译器:', platform.python_compiler())  #打印python编译器

会发现与我们的版本是不一致的,我们安装的的虚拟环境?My_venv1的python版本是3.9,但这里输出的是anaconda默认的python版本3.11:

?对于这个问题,我们需要修改每个虚拟环境下的kernel.json文件。

首先,查看jupyter的kernels:

jupyter kernelspec list

拿My_venv1举例,? 进入对应的目录下:

打开相应的kernel.json文件,修改python路径为anaconda下对应虚拟环境的python解释器路径:

修改为:

之后进入My_venv1虚拟环境,?安装ipykernel库(觉得慢可以换源,这里换了):

pip install ipykernel -i https://pypi.tuna.tsinghua.edu.cn/simple

此时重新进入jupyter,发现问题解决:

Pytorch:

首先进入pytorch官网(可能进不去,多试试),按照自己的版本选择,获得安装pytorch的命令:

这里虽然我选的是CUDA12.1,与我安装的CUDA12.2不对应,但其实是可以的,因为CUDA是向下兼容的。?

这里我推荐使用conda安装,其实单论安装来说conda与pip效果差不多,但是注意千万不要混用,这个环境对于库的安装我全用的conda(额除了上面的ipykernel)。具体可以看下面这个文章:

请问大神们,pip install 和conda install有什么区别吗? - 知乎 (zhihu.com)icon-default.png?t=N7T8https://www.zhihu.com/question/395145313然后对conda进行换源,换为国内的清华源,进入My_venv1环境下执行如下命令:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

?接下来执行pytorch官网获得的安装命令:

conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

?完毕后进行验证,在jupyter中执行以下代码:

import torch # 如果pytorch安装成功即可导入
print(torch.cuda.is_available()) # 查看CUDA是否可用
print(torch.cuda.device_count()) # 查看可用的CUDA数量
print(torch.version.cuda) # 查看CUDA的版本号

如果有以下输出,则证明安装成功:

至此安装完成,可以开始进行你的工作啦!

结语 :

这个环境确实难装,博主研究了好半天,当然也借着这个机会把很多东西理清楚了,希望这篇文章能帮到阅读的你。

文章来源:https://blog.csdn.net/weixin_57316642/article/details/135640279
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。