Pytorch环境搭建并在Pycharm/Spyder/Jupyter中使用

1、前言

本文参考了Pytorch的安装(Cuda+Cudnn+Anaconda)GPU版本,巨详细,安装不成功 你来打我以及深度学习——安装Anaconda、Pycharm以及CUDA和Pytorch库安装方法(2023.11最新),完成 win10 系统下pytorch的环境搭建。后续参考在 PyCharm / Spyder 进入 pytorch 环境设置了在Pycharm和Spyder中来使用搭建好的Pytorch环境。感谢各位大佬的教程。在此记录自己的搭建过程,以备不时之需。至于linux系统中的环境搭建,待需要时再实践并补充。

2、CUDA的安装

由于pytorch、CUDA以及cuDNN之间有版本对应关系,所以需要先检查一下适合的版本。

2.1 cuda版本确认

打开Nvidia控制面板,找到左下角的 系统信息,点击后找到 组件 栏,可以看到显卡支持的CUDA核心版本



2.2 检查Visual Studio的安装

通过win10任务栏中的搜索框可以检查是否安装了Visual Studio,需要注意的是Visual Studio与Visual Studio Code不是一回事。


这里我没有安装Visual Studio,所以在CUDA安装时需要注意一些细节。

2.3 Pytorch与CUDA的版本对应

https://pytorch.org/这里可以查看pytorch版本支持的CUDA版本


图中可以注意到,首先最新的pytorch支持python3.8及以上版本,也支持CUDA 11.8和CUDA 12.1。我的3060ti支持的CUDA最高版本为12.3.99,所以这里我可以安装CUDA 12.1。

2.4 下载并安装CUDA

打开 CUDA Toolkit Archive ,选择CUDA 12.1.0:



这里我选择了windows系统,version10就是win10下载并安装。

安装时首先会让你选择extraction的位置,默认是在C盘local/tmp下,大约需要占用10G的空间,在临时存放解压缩后的安装文件,安装完成 或 取消安装 后临时文件会被删除,一般不用管它。如果C盘吃紧,可以修改到其他盘。


选择 自定义安装


如果电脑上没有安装Visual Studio,需要取消Visual Studio Integration的勾选。


建议这几栏下的安装内容都看一下,当前版本是目前电脑上已有的版本,如果发现 新版本 低于 当前版本,可以取消勾选该条目以避免重复安装。比如在Driver components下取消Display Driver的勾选。


之后是选择安装目录,可以自行修改。安装完成后,在命令提示符中输入 nvcc -V


如图,已安装成功。

3、cuDNN的安装

3.1 cuDNN下载

打开(网址),需要先注册。

cuDNN Archive中查看适配的cuDNN,这里我选择v8.9.6 for CUDA 12.x,选择windows版本。


下载后,将文件夹解压到CUDA的安装目录下的CUDA\12.1\下,我这里CUDA安装到了G盘:



3.2、配置环境变量

在解压cuDNN到合适的位置后,需要给它添加环境变量。在win10任务栏搜索框中搜索“环境变量”


在 系统属性 的 高级 栏的最下方找到 环境变量,点击后在新窗口下方 系统变量 中找到 Path,单击选中Path然后点击下方的 编辑 按钮 


点击右侧的 新建,把这两个路径加入进去(自己安装的路径)


3.3、检查cuDNN是否安装成功

打开命令提示符,输入 G: 回车切换到G盘,用cd切换到cuDNN的安装目录


输入 bandwidthTest.exe然后回车,其实输入band后按tab键就自动给出全名了


输入 deviceQuery.exe 回车


都PASS就表示没问题了。

4、Anaconda安装

在Anaconda官网Anaconda Free Download下载并安装,自己修改安装路径或者默认路径,一路next就可以了。

如果电脑上有旧版本的Anaconda,建议卸载后安装最新版,因为conda的版本可能不一样。我是卸载了21年安装的Anaconda重新安装的,当时的conda是4.10版本,目前最新的是23.7版本。

之后同样需要配置一下环境变量,根据自己的安装目录把下图三个目录加入Path中


命令提示符中输入 conda -V


5、Pytorch安装

5.1 使用conda搭建虚拟环境

由于虚拟环境以及一些包会占用磁盘空间,Anaconda安装在C盘的小伙伴可以去搜索一下如何修改conda虚拟环境搭建位置。我这里Anaconda是安装在G盘。它在搭建环境时,会把相关文件放在Anaconda安装目录下的envs和pkgs中


win+R输入cmd打开命令提示符,输入 conda create -n pytorch python=3.11 创建名为pytorch,python版本为3.11的虚拟环境,可以根据需要自行设定python版本


创建后输入conda env list来查看已有的虚拟环境


5.2 安装Pytorch并检查

输入 conda activate pytorch 来进入创建的pytorch环境。还记得在Pytorch官网查看其与CUDA版本对应关系的步骤吗?我们还需要进入该网站https://pytorch.org/,根据自己的选择来获得Pytorch的安装命令


这里我选择使用pip来安装,复制图中Run this Command中的安装命令,在pytorch环境中单击右键粘贴,回车


需要按y就按y确认。安装好之后,在该环境中输入 pip list 来查看安装情况


可以看到 torch torchaudio 和torchvision都安装好了。为了确定它们是否是GPU版本,在pytorch环境下输入 python 并回车


输入 import torch 并回车,然后输入 torch.cuda.is_available() 并回车


返回True表示安装的是GPU版本,False则是CPU版本

另外,可以在import torch后输入 print(torch.__version__)来查看Pytorch的版本,注意这里version左右是两条下划线__不是单条下划线_


在import torch后,也可以使用 print(torch.cuda.device_count()) 来查看可用的CUDA数量


这里得到的 1 表示连接了一块显卡,而不是显卡中CUDA核型的数量,要分清楚,CUDA核心数量可以去Nvidia控制面板查看

至此,Pytorch就搭建成功了。我按照流程顺利安装完成,如有问题,可以参照本文开头的参考文章或自行搜索解决。

祝各位环境搭建顺利。

6、在Pycharm和Spyder中使用搭建的pytorch环境

在命令提示符中进入pytorch环境,固然可以直接使用,但很显然不方便。那么该如何在pycharm和spyder中来使用搭建好的pytorch环境呢?

6.1 在Pycharm中使用pytorch

打开Pycharm,打开File->Settings,找到Python Interpreter,选择show all


点击左上角的+号,在Conda Environment,选择右侧Existing environment,在Interpreter中选择上文创建的Pytorch环境下的python.exe。创建的环境一般是在Anaconda安装目录下的envs目录中

之后就可以直接import torch来使用了



6.2 在Spyder中使用pytorch

首先,打开Anaconda自带的Spyder,打开 工具 - 偏好


选中 Python解释器(Python interpreter),选择上文搭建的pytorch环境下的python.exe。上文提到,搭建的环境是放在anaconda目录下的env目录中


点击OK/Apply后,在spyder界面右下方的控制台中,进行kernel重启


一般情况下,此时控制台会提示需要在pytorch环境中安装spyder,并给出安装的命令,如 conda install spyder=2.4。但是实际上spyder=2.4的版本可能并不适用于搭建pytorch环境,所以我们就不用指定版本了

win+r 接 cmd,conda acitvate pytorch进入搭建的pytorch环境。再提一嘴,这里conda activate 后跟的是你所搭建的环境的名称。在该环境下使用 conda install spyder 来安装spyder


需要按y就按y回车。安装完成后会提示done,接下来可以在spyder中的控制台内点击 重启IPython内核 


当然,也可以像正常使用python那样,在代码中import torch


至此,可以在spyder中来使用搭建好的pytorch环境啦

6.3 在Jupyter中使用pytorch

使用jupyter就像使用R一样,可以逐行查看执行结果,在处理数据时非常方便

6.3.1 在jupyter中添加pytorch环境

这里建议先参考Jupyter nootbook 中添加虚拟环境来尝试将搭建的pytorch环境直接加入到jupyter中。

管理员身份打开命令提示符,切换到pytorch环境,输入 python -m ipykernel install --user --name pytorch --display-name pytorch

然后打开jupyter notebook,能看到new下有pytorch环境,进入后impotr torch也成功了。至此可以在jupyter中使用pytorch

6.3.2 安装Nbextensions

另外,据jupyter notebook 的Nbextensions安装所述,如果安装Anaconda时自定义了安装目录,可能会导致jupyter中没有Nbextensions,无法使用诸如自动补齐代码的插件。

所以我需要安装一下。管理员身份打开Anaconda promt,

参照jupyter notebook 的Nbextensions安装,先在环境pytorch下执行 pip install jupyter_contrib_nbextensions ,然后执行 jupyter contrib nbextension install --user ,此时我遇到报错说没有找到模块notebook。pip list发现确实没有该模块,根据https://blog.csdn.net/jingmenghai/article/details/131870625使用 pip install jupyter notebook==6.0.1 安装该模块。

重新执行 jupyter contrib nbextension install --user 报错说缺少模块 markupsafe 。pip install markupsafe 显示已安装其2.1.3版本,pip list也看到有该模块。pip uninstall markupsafe卸载后重新pip install markupsafe,然后重新执行 jupyter contrib nbextension install --user 就通过了。然后执行 pip install jupyter_nbextensions_configurator 顺利通过。

此时打开Anaconda的jupyter会报错说没有找到 jupyter_nbextensions_configurator,而 pip list 中是有它的。根据https://zhuanlan.zhihu.com/p/610874603 在当前环境中执行 python -m pip install jupyter_nbextensions_configurator ,顺利执行完成。重新打开jupyter 就没有报错了,且 Nbextensions出现了

至此,没有多余需要补充的了。

下文仅为记录,可以无视:

下面是我在尝试不同方法试图在jupyter中使用pytorch的些许记录,可以无视。

一些教程提到需要在pytorch环境下conda install nb_conda才能够在jupyter中使用pytorch。但是我的py3.11环境无法安装nb_conda,会提示:

nb_conda应该只能在py3.9以下才能顺利安装。如果执行conda install jupyter,尽管能在pytorch环境下安装jupyter,依旧无法在Anaconda的jupyter中使用pytorch环境。网上有看到同样无法安装nb_conda的情况,我这里只能重新创建一个py3.8的环境来进行pytorch的安装。

win+r 接cmd,conda create -n pytorch38 python=3.8新建环境,conda activate pytorch38进入环境


在该环境下重新安装pytorch。安装完成后,在当前环境下执行 conda install nb_conda。咦,我遇到了报错


在pytorch38/Scripts目录下会发现并不存在jupyter-nbextension.exe和jupyter-serverextension.exe。据https://www.bilibili.com/read/cv24005020/所述应当是安装Anaconda时自定义了安装目录,导致该安装目录下没有nbextension。打开jupyter确实会发现没有NBextension:


所以我需要安装一下。

参照这个BILI文章,先在环境pytorch38下安装pip install jupyter_contrib_nbextensions,然后执行jupyter contrib nbextension install --user时报错说没有找到模块notebook。pip list发现确实没有该模块,根据https://blog.csdn.net/jingmenghai/article/details/131870625使用pip install jupyter notebook==6.0.1安装该模块(不指定6.0.1的版本的话我py3.8依然报错)。重新执行jupyter contrib nbextension install --user报错说缺少模块markupsafe。pip install markupsafe显示已安装其2.1.3版本,pip list也看到有该模块。pip uninstall markupsafe卸载后重新pip install markupsafe,然后执行jupyter contrib nbextension install --user就通过了。然后执行pip install jupyter_nbextensions_configurator顺利通过。

但是此时打开Anaconda的jupyter会报错说没有找到 jupyter_nbextensions_configurator,而pip list中是有它的。根据https://zhuanlan.zhihu.com/p/610874603在当前环境中执行python -m pip install jupyter_nbextensions_configurator,顺利执行完成。重新打开jupyter就没有报错了,且Nbextensions出现了。

此时虽然pip list中没有jupyter_serverextensions,但是conda install nb_conda并不会在这里报错了,并出现了其他错误:


当前的anaconda prompt是以管理员身份运行的,且winpty.dll存在,那为何会拒绝请求呢?会不会是同时打开的jupyter占用了该文件?

我关掉jupyter后重新conda install nb_conda,顺利done。但此时打开jupyter notebook,依然无法在new下找到我想要使用的环境pytorch38.

参考了Jupyter nootbook 中添加虚拟环境,将pytorch38成功加入到jupyter notebook中,但是这个环境中没有torch....很奇怪


OK,既然这种方法似乎跟nb_conda没关系,就直接用上文中py3.11搭建的pytorch环境来直接放到jupyter中。

管理员身份打开命令提示符,切换到pytorch环境,输入 python -m ipykernel install --user --name pytorch --display-name pytorch


然后打开jupyter notebook,能看到new下有pytorch环境,进入后impotr torch也成功了。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,681评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,710评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,623评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,202评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,232评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,368评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,795评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,461评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,647评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,476评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,525评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,226评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,785评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,857评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,090评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,647评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,215评论 2 341

推荐阅读更多精彩内容