使用Anaconda创建Pytorch虚拟环境的排坑详细教程
作者:赤赤_流星雨 发布时间:2021-06-14 09:01:03
一.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处理器,点击应用即可。
NVIDIV驱动程序安装完成,可以通过nvidia-smi命令查看本机CUDA版本。
五.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
来源:https://blog.csdn.net/weixin_53534399/article/details/125954715
猜你喜欢
- 前面的话分页导航几乎在每个网站都可见,好的分页能给用户带来好的用户体验。本文将详细介绍Bootstrap分页概述在Bootstrap框架中提
- 为了更好的进行封装,每个实现不同功能的js代码应该有自己的js文件,这样如果一个网页中引用了多个js文件,如下 <script typ
- 本文实例为大家分享了python画条形图的具体代码,供大家参考,具体内容如下在做毕设的过程中有些数据用表格来展现,会很难看出数据之间的差别,
- python数组进行降维在深度学习训练过程中,我们有时候想要输出图片看看图片长什么样,但是训练时的图片格式一般都会多出一个批次的维度,如[1
- 今天碰到这个极度郁闷的报错,搞了大半下午,才发现是ie的问题,忍不住大骂。例子是这样的:页面中有多处能出发菜单,并且菜单出现在触发点的旁边,
- SQL Server的容灾功能一直弱于Oracle和MySQL,无法自动同步元数据(用户、登录名、权限、SQL 代理作业、链接服务器),导致
- Numpy 是Python科学计算的一个核心模块。它提供了非常高效的数组对象,以及用于处理这些数组对象的工具。一个Numpy数组由许多值组成
- 在解决日常的支持需求中,经常会遇到一些用户反馈一些无法简单复现的bug,有很大一部分的bug是由于用户自身的网络环境波动,或者是本身网络环境
- 谢谢icedblog提供的代码, 从那个js中我参考了moveSelect的利用, 不过那个代码中有几个BUG, 比如按住鼠标不放会不见显示
- 使用 sorted() 函数使用 sorted() 函数对字典进行排序,将其转换为元组列表,再按照指定的键或者值进行排序。按照键排序的示例代
- 一. 引言在数据分析和可视化领域,数据的有效呈现是至关重要的。Python作为一种强大的编程语言,提供了多种数据可视化工具和库。其中,Plo
- 所有数据库mysqlcheck --auto-repair -A -o -uroot -pyigeorg单一数据库mysqlcheck --
- 一、工具python3第三方类库requestspython3-pyqt5(GUI依赖,不用GUI可不装)ubuntu系列系统使用以下命令安
- 本文介绍了Python实现曲线点抽稀算法的示例,分享给大家,具体如下:目录何为抽稀道格拉斯-普克(Douglas-Peuker)算法垂距限值
- 首先我们要在邮箱的设置中开通那个POP3然后我们要导入这些包import poplibfrom datetime import dateti
- Python 内置的 itertools 模块包含了一系列用来产生不同类型迭代器的函数或类,这些函数的返回都是一个迭代器,我们可以通过 fo
- 1、可以使用"+"号完成操作输出为:[1, 2, 3, 8, 'google', 'com
- 我的通用权限系统设计是更换权限时候尽量不要涉及到代码修改,来自chinaunix论坛,今天转过来看看。希望对大家有所帮助,对PHP100的朋
- 在服务器部署时,往往都是在后台运行。当程序发生特定的错误时,我希望能够在日志中查询。因此这里熟悉以下 logging 模块的用法。loggi
- 理解切片基本用法:首先需要明白,可迭代对象,按照正数索引(正序)是从0开始的,按照负数索引(逆序)是从-1开始的。>>>