环境配置-pytorch
一.何为环境?
其实对于一台电脑就是一个环境,在这个环境下你可以干任何事情,而不受外界影响。
因此,环境就是一个可以隔离外界而容纳内部的一些属性或者操作——是不是非常像面向对象的类的概念?
当下比较流行的python环境管理有pip和anaconda。
这里我们就不介绍一些无聊的介绍,你只需要知道这两个是可以进行python包库统一管理的软件。它们的历史渊源可以自行查阅。
对于anaconda而言,其是目前包含了Python和各种用于科学计算的包、可以完全独立使用的一款软件。anaconda“有一个虚拟环境的概念,每个环境之间是隔离的,都可以设定不同的Python版本以及各种包,不和系统的冲突,可以随便切换”,所以十分方便。
其有虚拟环境管理和包库管理的功能。
tips:anaconda实际上不仅仅可以管理python还可以管理R、C等语言库,而pip是针对于python设计的,因此更加专业化,我们也常用pip,但是安装环境还是得用anaconda。
对于pip而言,一般来说就只有包库管理的功能了。
那么我们可以这样理解,anaconda建立一个虚拟环境——类似于虚拟机的概念,这个环境在电脑这个大环境下,与非我的环境相互隔离,然后进入这个环境后进行编程和软件运行等操作。
二.建立虚拟环境流程
1.创建环境
首先我们通过anaconda的命令conda create -n 环境名字 python=版本号干一件事情:“通过conda的create命令创建一个名为xx的、python版本为xx的虚拟环境”。
tips:所谓的命令实际上还是exe文件,命令仅仅是起到了一个用户-软件exe的接口交互的作用——类似于函数接口(API)。
2.激活环境
然后使用命令“activate 环境名字”进入环境。
tips:
首先,我们的这些操作都是在终端-terminal中进行的,所谓终端:对于软件设计都有一个后端-用户端口的设计模式,这个用户端口的“显示界面”可以理解为终端。上面的api就是连接后端功能和终端的部分之一。
然后,windows的终端就是命令行-cmd,anaconda使用cmd终端建立环境有3部分:环境名称、目录和命令:
你在哪个目录下打开cmd就是在哪里进行操作。
3.管理包库
最后可以通过conda list(查看已安装库)、conda install进行包库管理。当然,也可以通过pip管理,如果你是python软件开发,推荐优先使用pip。
相关的常用命令在下面。
conda create -n xx python=3.8 //创建python3.8的xx虚拟环境
conda remove -n xx --all //删除xx虚拟环境
conda activate xx //进入xxx环境
conda deactivate //关闭环境
conda env list //显示所有的虚拟环境
conda list //查看通过conda已经安装的文件包
conda install xxx //安装xxx文件包
conda update xxx //更新xxx文件包
conda uninstall xxx //卸载xxx文件包
conda search xxx //查询xxx文件包的版本
pip list //查看通过pip已经安装的文件包
pip install xxx //安装xxx文件包
pip uninstall xxx //卸载xxx文件包
pip search xxx //查询xxx文件包的版本
pip install –U xxx //更新xxx文件包
4.conda和pip换源(可选,创建环境之前完成)
所谓换源,因为pip install或者conda install本质还是我们平常从网上下载视频或者图片,只不过这些命令帮我们省了很多步骤——包括选定安装位置和安装步骤等。
pip和conda默认从外国网站进行下载python包库,但是国内网站像清华、阿里等有相关包库可以下载。
如果是pip,需要在用户目录的pip目录:C:/user(用户)/用户名/pip/下找到pip.ini——没有的话自己创建一个。
然后选择以记事本方式打开,编辑如下内容:
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
是不是特别像用户配置文件——.cfg?global是作用的section,option-timeout是超时限制、下方的就是说明我们从哪里下载包库。
如果是conda,一样的道理,同样的用户目录下找到这个文件:
编辑如下内容:
channels:
- defaults
show_channel_urls: true
default_channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
这两个配置就是我目前用得比较稳定的配置,当然你也可以根据自己情况更改。
三.Cuda和CuDNN+安装gpu版本的pytorch
在这之前我们需要搞清楚这几者的关系:GPU、cuda、cudatoolkit、cudnn、pytorch(GPU版本)(我们一般都不用pytorch-cpu版本)。
GPU是计算机的专门处理图像的处理器,说到GPU就不得不提大名鼎鼎的英伟达公司了,一般如果一个电脑配置了英伟达的显卡GPU,都会带着一个驱动程序:
通过这个驱动程序可以管理你的GPU。
CUDA的话,你应该经常会听到“英伟达公司生产的某某显卡,配置了xxx个cuda单元”。cuda是英伟达生产的通用的并行计算的运算平台,可以解决复杂的计算问题。它就相当于是基于GPU的工作台,多个cuda负责完成各种计算。
cudatoolkit是简化版本的cuda,主要包含了编译器和一些科学库和实用程序。
cudnn可以理解为cuda and neural network,也就是cuda专门面向深度学习神经网络设计的cuda升级包。
pytorch-gpu没什么好说的,就是基于gpu的一个深度学习框架。
下面,我们来安装gpu版本的torch
1.查看可以安装的最高版本的cuda
进入英伟达驱动程序的界面。
查看显卡信息。
这里的NVCUDA64.DLL就说明了我们可以安装的cuda最高版本是11.4.112。
2.确定可以安装哪些cuda
使用conda search cudatoolkit命令查看安装源存在的cuda版本。
再打开pytorch官网查看对应的安装命令。我们就按照一个10.2版本的cuda。
torch以往版本对应查看:https://pytorch.org/get-started/previous-versions/
3.检测安装是否成功
安装好了进入python看一下能不能使用GPU。
使用torch包的cuda子模块的is_available函数可以检测cuda也就是GPU是否用上了。
tensorflow的cuda安装要麻烦一些,对于pytorch,博主在安装过程中是已经安装了cuda和对应cudnn,直接安装cudatoolkit就可以了。但是,目前有一种假设,只安装cudatoolkit就可以了,因为cudatoolkit就是简化版cuda,对于深度学习够用了。
目前我的这个猜想仅供参考,后续会更新博客。
da子模块的is_available函数可以检测cuda也就是GPU是否用上了。
tensorflow的cuda安装要麻烦一些,对于pytorch,博主在安装过程中是已经安装了cuda和对应cudnn,直接安装cudatoolkit就可以了。但是,目前有一种假设,只安装cudatoolkit就可以了,因为cudatoolkit就是简化版cuda,对于深度学习够用了。
目前我的这个猜想仅供参考,后续会更新博客。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?