百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

【独家攻略】Anaconda秒建PyTorch虚拟环境,告别踩坑,小白必看

itomcoil 2025-02-15 15:55 13 浏览

目录

一.Pytorch虚拟环境简介

二.CUDA简介

三.Conda配置Pytorch环境

  1. conda安装Pytorch环境
  2. conda下载安装pytorch包
  3. 测试

四.NVIDIA驱动安装

五.conda指令

一.Pytorch虚拟环境简介

Torch是一个用于深度学习的=数学计算库,而Pytorch则是一个基于Torch的Python机器学习库,可看作其提供了Torch应用于Python的接口。而搭建Pytorch虚拟环境,通俗地讲,就是搭建一个包含了Pytorch的相关包的Python解释器的环境,即是专门用于处理基于Python的深度学习的问题的环境。

二.CUDA简介

CUDA(Compute Unified Device Architecture)中文名为统一计算设备架构,,是显卡厂商NVDIV推出的运算平台,可以帮助GPU处理图形相关的计算问题。

我们可以通过在命令行输入以下命令来查看我们电脑的CUDA版本配置,下面可以看到我的CUDA版本为11.7(若电脑没有独立显卡,则该命令输入无效,独立显卡问题在第四部分说明,可先看第该部分说明)。

nvidia-smi

(这里说明一下,因后面的命令行操作有些操作需要以管理员身份运行,所以建议大家从一开始就以管理员身份运行命令行窗口)具体操作方法有以下两种:

1. Windows开始窗口->Windows系统->命令提示符(注意先不要直接左键打开)->右键->更多->以管理员身份运行。

2. 快捷键win+R打开运行窗口,再输入cmd(注意不要直接运行),再快捷键ctrl+shift+enter以管理员身份运行。

三.Conda配置Pytorch环境

1.conda安装Pytorch环境

同样以管理员身份进入命令提示符窗口,在命令行中输入一下命令,我这里以python3.10解释器为例,安装的环境命名为pytorch,这个环境名可以自定义。

conda create -name pytorch python=3.10



输入y,再回车。

即完成了Pytorch的环境安装。我们可以利用以下命令激活pytorch环境。当前面出现(pytorch)前缀时,代表已经进入pytorch环境。

activate pytorch

可能有些人会发现,自己创建的环境在自己自定义的安装的Anaconda路径的envs目录下没有找到,那么这个环境就是被安装到了C盘用户名目录下的.conda文件夹中的envs目录下了。

因为往往在环境中添加了包以后,环境文件夹会有好几个G,所以最好不要放在它默认的路径下。如果你不觉得麻烦,那么可以用一个比较笨的方法,就是每次新建完一个环境后,就把上图中的envs目录直接复制到你自己的Anaconda的安装目录中。另外还有一个(看似)高级一点的方法,就是找到上图中的.conda目录的同级目录下的一个叫做.condarc的文件,用记事本打开它。

在里面加上以下内容。

envs_dirs:
  - D:\360Downloads\Anaconda3\envs
pkgs_dirs:
  - D:\360Downloads\Anaconda3\pkgs

这里是我的Anaconda的安装路径设置到了D:\360Downloads\Anaconda3下,大家可以将前面的部分改为自己的Anaconda的安装路径。这样子之后再创建的虚拟环境都会自动安装到这里自己定义的目录下。

另外我们可以通过以下命令来查看已建的环境

conda env list

其中base为Anaconda的默认环境,python310是我自己之前搭建的环境,pytorch就是现在搭建出来的pytorch环境。

我们可以在激活的pytorch环境下用以下命令查看一下新创建的环境中包含哪些包。

conda list

可以看到新建的环境中的包并不包含pytorch的相关包,需要我们手动安装。

2.conda下载安装pytorch包

这里主要说明安装GPU版的pytorch包。因为pytorch包需要与CUDA版本相匹配,所以需要根据自己机器的CUDA版本选择对应版本的pytorch包进行安装。根据上面利用nvidia-smi命令查找的本机CUDA版本,可以对应在PyTorch这里查找安装对应型号的pytorch包的命令。我上面查找的我的CUDA版本为11.7,那么我可以安装CUDA11.7以下的版本的pytorch包,这里我就选择11.6。

要在激活的pytorch环境下,复制以上方框中的命令开始下载安装包(注意必须要在pytorch环境中输入!!!否则会装到Anaconda的默认base环境中!!!)。其中-c pytorch中的c表示channel,即下载渠道,是国外的渠道,所以很有可能会出现安装非常缓慢的情况。那么我们就可以选择国内的镜像源来下载,我这里选用清华镜像源。具体操作有2种方式:

1. 在命令行输入

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
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/
config --set show_channel_urls yes

其中最后一句是在安装时可以显示安装的包的来源。

2. 同上述找到.condarc文件的位置,同样用记事本打开,在最上面加上以下内容加上以下内容

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - conda-forge

这样就将清华镜像源加入到了路径中,之后安装包时,搜索渠道会先从该镜像源查找,速度会快很多。可以通过以下命令查看下载渠道和环境安装路径等信息。

conda info

加入好这些渠道后,就可以用上述命令安装pytorch包了。首先同上述方法在激活的pytorch环境下输入前面的下载命令,但这时候就可以把-c pytorch即其之后的参数部分都删除掉了,即

conda install pytorch torchvision torchaudio cudatoolkit=11.6

输入上面的命令回车后,会出现上面这个需要安装的包的列表,其中我们需要的pytorch包也在这里框出来了,右边对于这个包的版本说明的最后面的cuda11.6_cudnn8_0就表示下载的为GPU版本的pytorch包(CPU版本的在最后面会带有cpu的字样)。那么我们就可以输入y,然后回车等待下载了。如果中途安装的进度条卡主不动了,那可能是因为网络不太稳定,可以逐次按下快捷键Ctrl+C退出安装,然后输入上述命令重新安装

下载完成后,可以在pytorch环境下,同上述输入conda list命令查看安装好包后的所有包的列表。

可以看到GPU版的pytorch和相关的包已经安装成功了 。

3.测试

安装完pytorch包后,在pytorch环境下输入以下命令进入该环境下的python界面。

python

这里显示了python解释器版本为3.10.4,后面括号中的时间表示该版本的发行时间。(另外这里说明一下,当退出pytorch环境后,再次输入python命令结果如下)

这里显示版本为3.9.12,这个为我安装的Anaconda的默认的base环境下的python解释器版本,但如果我们想要使用python其他版本的解释器,只需要像上面创建pytorch环境时指定python解释器版本即可,比如我这里就指定了器创建包含3.10版本的解释器的pytorch环境,同时在Pycharm中选择这个环境下的解释器,即可使用3.10版本的解释器,并且包含我们在这个环境下安装的包。另外上面的Waring警告只是表示说这个python命令没有在指定环境中执行,那么系统选择了默认的base环境的python解释器,如果想要去掉这个警告,那么只需要先输入activate命令先进入base环境,就不会再出现这个警告了,如下:

话题回到检验测试pytorch环境下的pytorch包的安装情况,可以先进入pytorch环境,并在环境下输入python命令进入python界面,再依次输入如下指令:

import torch
import torchvision
print(torch.cuda.is_available())

若均不报错,并且最后一个输出为True,则表示GPU版的pytorch包安装成功,pytorch环境搭建完成。则可以输入quit()退出python,输入deactivate指令退出环境。

四.NVIDIA驱动安装

NVIDIA图形驱动程序主要用来驱动NVIDIA显卡,让系统改正确识别NVIDIA的图形显示卡,可进行2D/3D渲染,发挥显卡应有的效能。

首先可以先看一下电脑是否具有独立显卡:进入设备管理器,找到

方框中的标识具有独立显卡。若没有,则需要到NVIDIA官网下载合适的NVIDIA驱动程序。

然后点击搜索,然后之后两个页面全部点下载,即可开始下载。

然后找到安装文件

我下载了两种文件作对比,我上面操作下载的文件是下面的notebook版(笔记本版)的,而desktop版的是台式机版本的。

以笔记本版为例,以管理员身份运行下面那个exe文件,这是临时解压文件的路径,后续安装完成后悔删除,所以就直接按照默认路径即可,按ok。

下载临时文件完成后,进入安装界面,然后一路按照默认选项按继续或下一步即可

然后,在桌面空白处右键,选择NVIDIA控制面板。

然后选择管理3D设置,再选择高性能NVIDIA处理器,点击应用即可。

五.conda指令

以环境名为pytorch,对应python解释器版本3.10为例,以下在命令行中的conda指令归纳如下:

创建环境:

conda create -n pytorch python=3.10

conda create --name pytorch python=3.10

删除环境:

conda remove -n pytorch --all

激活环境:(对于base环境,可直接简写为activate)

activate pytorch

退出环境:

deactivate

下载 / 卸载包:

conda install package_name

conda remove package_name

查询环境中的所有包:

conda list

查询已搭建的环境:

conda env list

查询环境中的相关路径和下载渠道等信息:

conda info

打开python解释器:

python

#IT##程序员##经验分享##干货分享##程序员##计算机##互联网##Python#

相关推荐

Excel新函数TEXTSPLIT太强大了,轻松搞定数据拆分!

我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!最近我把WPS软件升级到了版本号:12.1.0.15990的最新版本,最版本已经支持文本拆分函数TEXTSPLIT了,并...

Excel超强数据拆分函数TEXTSPLIT,从入门到精通!

我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!今天跟大家分享的是Excel超强数据拆分函数TEXTSPLIT,带你从入门到精通!TEXTSPLIT函数真是太强大了,轻松...

看完就会用的C++17特性总结(c++11常用新特性)

作者:taoklin,腾讯WXG后台开发一、简单特性1.namespace嵌套C++17使我们可以更加简洁使用命名空间:2.std::variant升级版的C语言Union在C++17之前,通...

plsql字符串分割浅谈(plsql字符集设置)

工作之中遇到的小问题,在此抛出问题,并给出解决方法。一方面是为了给自己留下深刻印象,另一方面给遇到相似问题的同学一个解决思路。如若其中有写的不好或者不对的地方也请不加不吝赐教,集思广益,共同进步。遇到...

javascript如何分割字符串(javascript切割字符串)

javascript如何分割字符串在JavaScript中,您可以使用字符串的`split()`方法来将一个字符串分割成一个数组。`split()`方法接收一个参数,这个参数指定了分割字符串的方式。如...

TextSplit函数的使用方法(入门+进阶+高级共八种用法10个公式)

在Excel和WPS新增的几十个函数中,如果按实用性+功能性排名,textsplit排第二,无函数敢排第一。因为它不仅使用简单,而且解决了以前用超复杂公式才能搞定的难题。今天小编用10个公式,让你彻底...

Python字符串split()方法使用技巧

在Python中,字符串操作可谓是基础且关键的技能,而今天咱们要重点攻克的“堡垒”——split()方法,它能将看似浑然一体的字符串,按照我们的需求进行拆分,极大地便利了数据处理与文本解析工作。基本语...

go语言中字符串常用的系统函数(golang 字符串)

最近由于工作比较忙,视频有段时间没有更新了,在这里跟大家说声抱歉了,我尽快抽些时间整理下视频今天就发一篇关于go语言的基础知识吧!我这我工作中用到的一些常用函数,汇总出来分享给大家,希望对...

无规律文本拆分,这些函数你得会(没有分隔符没规律数据拆分)

今天文章来源于表格学员训练营群内答疑,混合文本拆分。其实拆分不难,只要规则明确就好办。就怕规则不清晰,或者规则太多。那真是,Oh,mygod.如上图所示进行拆分,文字表达实在是有点难,所以小熊变身灵...

Python之文本解析:字符串格式化的逆操作?

引言前面的文章中,提到了关于Python中字符串中的相关操作,更多地涉及到了字符串的格式化,有些地方也称为字符串插值操作,本质上,就是把多个字符串拼接在一起,以固定的格式呈现。关于字符串的操作,其实还...

忘记【分列】吧,TEXTSPLIT拆分文本好用100倍

函数TEXTSPLIT的作用是:按分隔符将字符串拆分为行或列。仅ExcelM365版本可用。基本应用将A2单元格内容按逗号拆分。=TEXTSPLIT(A2,",")第二参数设置为逗号...

Excel365版本新函数TEXTSPLIT,专攻文本拆分

Excel中字符串的处理,拆分和合并是比较常见的需求。合并,当前最好用的函数非TEXTJOIN不可。拆分,Office365于2022年3月更新了一个专业函数:TEXTSPLIT语法参数:【...

站长在线Python精讲使用正则表达式的split()方法分割字符串详解

欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中使用正则表达式的split()方法分割字符串详解》。使用正则表达式分割字符串在Python中使用正则表达式的split(...

Java中字符串分割的方法(java字符串切割方法)

技术背景在Java编程中,经常需要对字符串进行分割操作,例如将一个包含多个信息的字符串按照特定的分隔符拆分成多个子字符串。常见的应用场景包括解析CSV文件、处理网络请求参数等。实现步骤1.使用Str...

因为一个函数strtok踩坑,我被老工程师无情嘲笑了

在用C/C++实现字符串切割中,strtok函数经常用到,其主要作用是按照给定的字符集分隔字符串,并返回各子字符串。但是实际上,可不止有strtok(),还有strtok、strtok_s、strto...