当前位置: 首页 > news >正文

Python深度学习环境配置(Pytorch、CUDA、cuDNN),包括Anaconda搭配Pycharm的环境搭建以及基础使用教程(保姆级教程,适合小白、深度学习零基础入门)

全流程导览

  • 一、前言
  • 二、基本介绍
    • 2.1全过程软件基本介绍
      • 2.1.1 Pytorch
      • 2.1.2 Anaconda
      • 2.1.3 Pycharm
      • 2.1.4 显卡GPU及其相关概念
      • 2.1.5 CUDA和cuDNN
    • 2.2 各部分相互间的联系和安装逻辑关系
  • 三、Anaconda安装
    • 3.1安装Anaconda
    • 3.2配置环境变量
    • 3.3检验是否安装成功
  • 四、Pycharm安装
  • 五、Anaconda和Pycharm的基本使用
    • 5.1Anaconda的基本使用
      • 5.1.1Anaconda的一些基本指令
      • 5.1.2有关下载源的一些指令和说明
      • 5.1.3 如何自定义Anaconda新建的虚拟环境位置(移到C盘以外)
    • 5.2Pycharm的基本使用(搭配Anaconda)
      • 5.2.1 新建项目
      • 5.2.2 切换解释器(环境)
  • 六、安装前的信息确认
    • 6.1 检查显卡驱动
      • 6.1.1如何检查
      • 6.1.2 如何安装显卡驱动
    • 6.2 确定CUDA型号
      • 6.2.1 首先根据自己的显卡型号确定显卡算力
      • 6.2.2 根据算力,匹配合适的CUDA版本
    • 6.3 确定torch的版本
    • 6.4 确定对应的python版本
  • 七、Pytorch_GPU版本的安装
  • 八、CUDA的安装
  • 九、cuDNN的安装
  • 十、检验环境是否配置成功
  • 附录
    • 参考文献

一、前言

最近因为各种各样的原因,电脑重装了三次,有关于python和深度学习的环境也反反复复的重新安装了多次,期间找了很多的资料,也看了很多文章,各位大佬基本把环境配置的各个环节都论述的十分清楚了,但是有关各个环节的讲解还是比较分散。

因此,我想总结一台电脑从零开始配置到调用Pytorch使用GPU进行深度学习计算的全过程环境搭建,于是便有了写这篇文章的想法。因为是第一次在CSDN上写长篇,还有许多不足,大家在阅读本文的过程中如有发现任何错误,欢迎指出,也欢迎大家多提建议,我们一起共同进步!

本文总结了大量文章及视频的相关内容,博采众长,并加入了些许自己的理解,所有的引用均已在对应板块注明,如有侵权,请联系我删除。

文章大致结构如下:

  • 首先是前言介绍了文章背景和形式,以及文章的主要内容。
  • 第二章介绍了相关软件和相互之间的逻辑关系。
  • 接下来的第三、四、五章,讲解了Anaconda和Pycharm的配置,以及他们的一些基本使用,完成这三步后,即完成了Python的配置工作,可以开始使用Python进行项目开发。
  • 第六章进行了安装前的信息确认,确定了CUDA、Pytorch以及Python三者之间的版本关系。
  • 第七章介绍了如何在虚拟环境中配置Pytorch,完成后可以调用CPU进行深度学习的计算。
  • 第八、九章介绍了CUDA和cuDNN的环境配置,完成后,python即可调用GPU对深度学习的计算进行加速。
  • 第十章介绍了如何检验环境是否配置成功。

二、基本介绍

2.1全过程软件基本介绍

本部分内容总结自以下文章,并加入了一些自己的理解:
链接:Pytorch深度学习环境配置(GPU版本)
链接:pytorch 的一些介绍以及常用工具包展示
链接:CUDA、cuDNN以及Pytorch介绍

2.1.1 Pytorch

  • Pytorch是torch的python版本,是由Facebook开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用;
  • Pytorch的计算图是动态的,可以根据计算需要实时改变计算图;
  • 由于Torch语言采用 Lua,导致在国内一直很小众,并逐渐被支持 Python 的 Tensorflow 抢走用户。作为经典机器学习库 Torch 的端口,PyTorch 为 Python 语言使用者提供了舒适的写代码选择。
    官网链接:Pytorch官网链接

2.1.2 Anaconda

  • 在配置深度学习环境的时候,并不是从python官网下载python然后使用pip命令安装,更多的是使用Anaconda这个软件。

  • Anaconda是一个环境管理软件,可以帮助我们创建虚拟环境,管理虚拟环境。

  • 同时,可以把conda理解为手机上的应用商店,各种的包类似于各种的APP,当我们需要用到其他的开源库、包的时候,可以通过Anaconda进行下载,不同应用商店的下载安装速度会有所差异,并且会维护软件,同样的,conda也会维护包和库。

  • 安装Anaconda会默认安装很多东西,包括python的环境、conda命令,conda命令可以安装其他的库(conda install 包名)和pip差不多,因此不需要再单独下载python,直接安装Anaconda即可,详细的操作步骤见后文。

  • 虚拟环境:由于不同的项目可能会使用不同的环境,(例如A项目要用Pytorch1.10版本而B项目要使用1.4版本),Anaconda可以创建多个虚拟环境来独立维护不同项目需要用到的包,使两个项目环境互不干扰。

Anaconda界面:
Anaconda界面

2.1.3 Pycharm

  • Pycharm和IDEA一样都是IDE,我们在上面配置好一个Anaconda的虚拟环境了之后,这时创建新的Pycharm项目选择解释器的时候就可以选择已经配置好的环境而不用再创建一个虚拟环境了,通常我们创建项目都选择的是之前配置好的环境。
  • 并且,Pycharm还可以很方便的切换环境,只需要添加、更换解释器即可。

Pycharm初始界面: Pycharm初始界面

2.1.4 显卡GPU及其相关概念

  • 显卡(GPU):主要用于在屏幕上显示图像,用于与视频、图像处理相关的任务。
  • 显卡,可以分为独立显卡和核显(嵌入在CPU中)
  • 驱动:用于让计算机识别特定的硬件
  • 深度学习显卡:一般用英伟达品牌的显卡,NVIDIA
  • CUDA:英伟达厂商创建了一个CUDA平台,让我们可以操作英伟达匹配的显卡,Pytorch的库会调用CUDA的库去给显卡发送指令和数据来进行深度学习的训练
  • 它们之间的关系如下图:我们的计算机安装驱动之后会识别到该显卡,英伟达显卡的驱动会自带一个Cuda driver version(Cuda驱动版本)是跟驱动绑定的,我们还会装一个软件层面的Cuda runtime version,其中运行版本要小于等于驱动版本,Pytorch想要利用显卡就必须要装Cuda runtime version,Cuda runtime version就会操作显卡来完成深度学习的任务。
    显卡和驱动的关系

2.1.5 CUDA和cuDNN

  • CUDA(Compute Unified Device Architecture)是由NVIDIA开发的并行计算平台和编程模型,用于利用NVIDIA GPU(Graphics Processing Unit)进行通用目的计算(GPGPU)。它是一种为GPU编程提供高性能和易用性的软件环境。
  • CUDA的主要目标是将GPU作为计算加速设备,用于执行并行计算任务,特别是科学计算和深度学习等领域。它通过提供一套编程接口(API)和工具集,使开发者能够利用GPU的大规模并行计算能力,以加速计算密集型任务。
  • cuDNN(CUDA Deep Neural Network)是由NVIDIA开发的深度神经网络(DNN)加速库,专门用于在CUDA平台上进行深度学习任务的加速。
  • cuDNN提供了高度优化的DNN(深度神经网络)基础操作和算法实现,如卷积、池化、归一化、激活函数等,以及自动求导和张量操作等。它利用了NVIDIA GPU的并行计算能力和高度可编程的架构,提供了高性能的DNN计算和训练加速。
  • 通过使用cuDNN,深度学习框架(如TensorFlow、PyTorch等)可以利用其提供的GPU加速功能,加快训练和推理的速度。cuDNN库实现了高效的卷积计算和其他操作,优化了计算过程和内存使用,以最大化GPU的利用率和性能。

2.2 各部分相互间的联系和安装逻辑关系

  • (1)首先在我们计算机上安装Anaconda,使用Anaconda创建虚拟环境.
  • (2)配置虚拟环境,安装各种需要用到的包,例如Numpy、matplotlib等,包括Pytorch的安装。(也可以在第3步之后进行)
  • (3)环境配置完成以后安装Pycharm创建一个项目,在创建项目时Pycharm会要求选择配置的解释器,这时就可以引用我们之前Anaconda中配置好的环境。
  • (4)接下来我们在项目中编写代码,代码运行时就会调用我们配置好的解释器来运行代码,解释器将代码翻译成指令传送给CPU去执行(且只能交给CPU运行)。
  • (5)安装和配置CUDA以及cuDNN。
  • (6)完成配置后,当在我们编写的代码中有调用cuda的库来想让GPU完成我们的运算时,CPU执行指令时会将数据传送给GPU去执行。
  • (7)完成。

下图显示了上文2.1中所提到的各部分之间的联系。
各部分联系
为了加深理解,我们可以把我们的计算机比作一家酒店,Anaconda比作酒店前台,每个虚拟环境比作酒店的房间,每个包(packages)比作房间里不同装修和家具陈设。每当我们去做一个新项目的时候,需要创建一个新的虚拟环境,就像是找前台开了一间房;在环境中配置不同的包帮助我们实现不同的功能,就像是我们住酒店时候对酒店房间的不同要求比如要有wifi、有没有电视、两张床还是大床房等等;当我们做另外一个项目的时候,项目需要安装的包不同,因此需要新的虚拟环境,配置新的包,就像是我们开了另外一间房间,房间里有不同的陈设,实现我们的不同需求。

注意,这两个房间内的陈设,是互不影响的!!!

也就是说我们在这个房间里做的装修装潢,不会影响到其他房间的布置,把这个房间砸的稀巴烂,另外一个房间也还是完好无损的。虚拟环境也是这样,每当我们需要新的房间和新的功能的时候,只需要去找前台开一个新房间,重新装修,摆上需要的陈设、家具即可。当我们不需要这个环境时,只需要删除这个虚拟环境即可(去找前台退房),删除虚拟环境可以把环境下的所有包一次性删干净。

因此,使用Anaconda进行环境和包的管理,十分方便。

接下来,让我们开始进入安装流程吧。

三、Anaconda安装

本部分内容总结自以下视频及文章,大家可以直接跳转观看视频教学,我在这里节选这篇文章的安装部分供大家参考。
链接:【python编程环境安装】全网最详细python环境安装。pycharm和anaconda手把手安装教学

链接:Anaconda安装-超详细版(2023)

3.1安装Anaconda

(1)首先,下载Anaconda安装包。
这里是官网的下载链接:官网下载链接
Anaconda官网下载界面
如果官网下载太慢,或者无法访问,可以通过清华源进行下载:Anaconda清华源镜像
Anaconda清华源下载页面

(2)双击打开安装包,弹出安装界面,点击next

在这里插入图片描述

(3)点击I Agree

在这里插入图片描述

(4)选择All Users

在这里插入图片描述

(5)修改安装路径,这里默认是安装在C盘,建议安装到其他盘,因为anaconda比较大,会很占空间。

在这里插入图片描述

(6)只选择第二项,第二项是说要默认使用python的版本,后期手动添加环境变量

在这里插入图片描述

(7)点击Install,等待安装完成。

在这里插入图片描述

(8)点击next

在这里插入图片描述

(9)点击Finsh。

在这里插入图片描述

(10)至此,完成安装,接下来配置环境变量。

3.2配置环境变量

(1)计算机(右键)→属性→高级系统设置→(点击)环境变量

在这里插入图片描述

(2)在下面系统变量里,找到并点击Path

在这里插入图片描述

(3)在编辑环境变量里,点击新建

在这里插入图片描述

(4)输入下面的五个环境变量。(这里不是完全一样的!你需要将以下五条环境变量中涉及到的"D:\WorkSoftware\Install\Anaconda3"都修改为你的Anaconda的安装路径,也就是你在3.1中的第5步设置的安装环境)

D:\WorkSoftware\Install\Anaconda3
D:\WorkSoftware\Install\Anaconda3\Scripts
D:\WorkSoftware\Install\Anaconda3\Library\bin
D:\WorkSoftware\Install\Anaconda3\Library\mingw-w64\bin
D:\WorkSoftware\Install\Anaconda3\Library\usr\bin

简要说明五条路径的用途:

这五个环境变量中,按照顺序依次为:
1是Python需要,
2是conda自带脚本,
3是jupyter notebook动态库,
4是使用C with python的时候

(5)配置完成后点击确定

在这里插入图片描述

3.3检验是否安装成功

(1)同时按 win + r ,输入cmd,在弹出的命令行查看anaconda版本,输入 :

conda --version

在这里插入图片描述

(2)输入:

python

在这里插入图片描述

若出现版本号,即代表配置成功!

(3)要注意,Anaconda安装完成后是不会在桌面建立快捷方式的,我们可以在开始菜单找到。

在电脑屏幕左下角的Windows徽标键这里,选择点击绿色圈圈Anaconda Navifator将其打开:

在这里插入图片描述

单击即可打开,或者拖动到桌面形成快捷方式。

至此,Anaconda安装配置完成。

四、Pycharm安装

本部分内容总结自以下文章,仅节选了pycharm的安装过程。

链接:PyCharm安装教程,图文教程(超详细)

(1)下载安装包

访问官网 Pycharm官网下载 下载「社区版 Community」 安装包,并双击打开。

在这里插入图片描述

(2)设置界面,点击 Next

在这里插入图片描述

(3)选择安装位置后,点 Next,这里建议选择C盘以外的其他盘。

在这里插入图片描述

(4)安装设置界面,4个全部勾选后,点 Next

在这里插入图片描述

(5)选择菜单文件夹界面,保持默认,点 Install

在这里插入图片描述

(6)选择稍后手动重启,点 Finish(这里也可以选立即重启,但是重启之前记得保存你还没完成的工作)

在这里插入图片描述

(7)桌面出现图标,PyCharm安装完成。

在这里插入图片描述

至此,Pycharm安装完毕。

五、Anaconda和Pycharm的基本使用

5.1Anaconda的基本使用

本部分内容总结自以下文章,并加入了自己的理解和介绍:

链接:Anaconda创建、激活、退出、删除环境及管理环境中的包相关命令——最新全面直观版

链接:Anaconda 创建环境、删除环境、配置镜像源、安装包

Anaconda的使用我认为基本可以分为两部分,一个是在客户端界面操作,一个是在Anaconda Prompt里面通过命令行进行操作,这里先简单介绍一下使用命令行的基本方法。

5.1.1Anaconda的一些基本指令

Anaconda的指令都在Anaconda Prompt里面运行,如何运行Anaconda Prompt如下图所示:

(1)在开始菜单打开所有应用

在这里插入图片描述

(2)在Anaconda文件夹中的第3行找到Anaconda Prompt,单击打开

在这里插入图片描述

(3)打开后默认显示的是Anaconda下载好自带的基础环境base

在这里插入图片描述

这里需要注意,这个Anaconda自带的环境,里面已经附带了很多包,基本能够满足大部分基本需求,这个base环境是没有办法自己安装其他包的,因此需要自己新建虚拟环境来配置,从而满足自己的开发需求。

(4)接下来是一些基本指令的介绍

  • 查看已经有的虚拟环境有哪些
conda env list

我们来看一下运行以后是什么样的

在这里插入图片描述

  • 新建虚拟环境
conda create -n your_env_name(新建的虚拟环境的名字) python=n(指定python版本)

例如:

conda create -n hello_world python=3.9

如果没有指定python的版本,则会默认下载最新版本的python。

  • 删除虚拟环境(同时删除环境里的所有配置)
conda remove -n your_env_name(需要删除的虚拟环境的名字) --all

例如:

conda remove -n hello_world --all
  • 激活虚拟环境
conda activate your_env_name(需要进入的环境的名称)

例如:

conda activate hello_world

我们来运行一下
在这里插入图片描述
可以看到,环境前面的路径已经变化,这时表示我们已经进入了名叫hello_world的虚拟环境中。

此时查看已有的虚拟环境
在这里插入图片描述
我们可以看到,星号已经从base变到了hello_world上,指示我们现在是在hello_world环境中。

  • 查看当前环境下的所有包
conda list
  • 退出环境
conda deactivate 

让我们来运行一下

在这里插入图片描述
可以看到,我们又重新回到了base环境中。

  • 安装开源的包(packages)

请注意,在安装这些包之前,一定要确定自己当前所在的环境是否是正确的环境,不要将包安装错了环境,再次强调,base环境不可以安装包!

conda install package(包的名字)

例如:

conda install numpy

这里也可以使用pip,将上面的conda改成pip即可。

  • 删除包
conda uninstall package(包的名字)
  • 更新包
conda/pip update package(包的名字)

5.1.2有关下载源的一些指令和说明

源是Anaconda的下载通道,默认的源是国外网站,可能有时候下载速度会很慢,因此需要配置国内的镜像源,从而加快下载速度。

  • 显示当前已有的源
conda config --show channels
  • 重置镜像源
conda config --remove-key channels
  • 执行的命令,配置国内镜像源
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/

我们来看看运行情况:
在这里插入图片描述
注:这里在哪个环境里无所谓,都可以去对源进行配置和删除。

  • 一些常用的源,供大家选择
	http://mirrors.aliyun.com/pypi/simple/        #阿里https://pypi.tuna.tsinghua.edu.cn/simple/     #清华http://pypi.douban.com/                       #豆瓣http://pypi.mirrors.ustc.edu.cn/              #中国科学技术大学

5.1.3 如何自定义Anaconda新建的虚拟环境位置(移到C盘以外)

本节内容总结自以下文章:
链接:w11下载anaconda在d盘,新建的虚拟环境总是在c盘怎么解决

有同学可能会发现,在安装Anaconda的时候,安装路径设置在C盘以外的其他位置,但是每次使用Anaconda创建虚拟环境的时候,位置总是会出现在C盘,随着我们做的项目越来越多,环境和包也越来越多,C盘的空间堪忧,因此将虚拟环境的目录移到C盘以外十分重要。

下面介绍配置方法:

(1)打开文件夹,点开c盘,点击用户

在这里插入图片描述

(2)点击自己用户名的文件夹:

在这里插入图片描述

(3)存在两种情况:

a.存在“.condarc”的文件 :

在这里插入图片描述

1)接着查看文件的内容是否为(不是的话修改成这个):

channels:- defaults
show_channel_urls: true
default_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmsys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudbioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmenpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudsimpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

2)然后在最底层加上:

envs_dirs:- D(哪个盘由你决定)://(后面的文件路径也是你自己决定的)anaconda3//envs

3)最终呈现的效果是这样:

channels:- defaults
show_channel_urls: true
default_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmsys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudbioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmenpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudsimpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
envs_dirs:- D://anaconda3//envs

b.第二种情况就是没有这个“.condarc”的文件,那么就点击"win"+“r”,搜索“cmd”调出终端,然后输入:

conda config --set show_channel_urls yes

回车键后就会在上面说的路径生成".condarc"文件,然后将生成的文件的内容改成上面a步骤所说的就可以了。

5.2Pycharm的基本使用(搭配Anaconda)

5.2.1 新建项目

(1)打开之后的初始界面如下,点击New Project创建新的项目

在这里插入图片描述

(2)按基本选项按照下图所示选择

在新建项目之前,可以通过Anaconda创建和配置好虚拟环境,现在点击小文件夹图标,去虚拟环境的路径寻找python的解释器(这里的路径就是5.1.3的第3步中a设置的路径),我的路径是D:\ProgramData\my_envs
在这里插入图片描述

项目文件位置自己设置。

(3)在路径下找到python.exe文件,然后选中点击OK

在这里插入图片描述

(4)点击create创建新项目

在这里插入图片描述

(5)创建完成(这里是默认生成的main.py文件)

在这里插入图片描述

(6)可以在左边的项目文件夹上右击鼠标,在该项目文件夹下新建.py文件编写python代码

在这里插入图片描述

5.2.2 切换解释器(环境)

以上介绍了在新建项目文件时,寻找Anaconda完成配置的虚拟环境路径下的python.exe,除此之外,还可以在pycharm已经打开的项目中切换到其他环境,添加那个环境的解释器即可。

(1)打开设置

在这里插入图片描述

(2)找到当前项目的解释器,然后点击添加其他解释器

在这里插入图片描述

(3)选择Existing,点击右侧的三个点选择我们要切换到的虚拟环境的目录

在这里插入图片描述

(4)找到我们想要添加的环境,选中解释器,点击OK

在这里插入图片描述

(5)可以看到,该环境的解释器已经添加进来了,而后点击OK

在这里插入图片描述

(6)选中要切换到的环境的解释器,点击OK(而后需要稍等片刻即可切换完成)

在这里插入图片描述

六、安装前的信息确认

到这里,我们已经完成了电脑上的python配置,已经可以开始自己创建虚拟环境,进行python的代码编写工作了。接下来开始深度学习环境的搭建。

在我们开始搭建深度学习的环境以前,首先需要确定各安装组件的版本。

6.1 检查显卡驱动

我们首先需要检查电脑上是否已经安装了显卡的驱动。

6.1.1如何检查

(1)同时按ctrl + alt + delete打开任务管理器,点击性能

在这里插入图片描述

(2)查看右上角,如果正常显示显卡的型号,则电脑已经安装了显卡驱动,如果没有,则进入6.1.2进行安装

在这里插入图片描述

6.1.2 如何安装显卡驱动

本节内容总结自以下文章:
链接:windows系统安装显卡驱动软件和CUDA11.1的详细教程

(1)查询电脑硬件GPU配置(查询合适的显卡驱动软件)

1)在桌面找到“此电脑”,或进入文件夹界面的“此电脑”,右键选中“管理”,进入新界面(如果电脑桌面没有“此电脑”图标,请在桌面右击鼠标,打开个性化,而后进入主题,找到桌面图标设置,勾选“此电脑”即可),也可以在文件夹界面,对左边栏的此电脑右击进入管理。

在这里插入图片描述

2)在打开的界面找到“设备管理器”,然后找到显示适配器,找到NVIDIA GPU显卡,获得显卡版本号,如下是 NVIDIA GeForce RTX 3060

在这里插入图片描述

3)根据显卡型号查询驱动软件,查询网站:显卡驱动下载
根据自己的情况,选择相关信息进行搜索,即可找到显卡驱动。

在这里插入图片描述

4)驱动版本和CUDA版本的对应关系

查询官网:驱动版本和CUDA版本匹配关系查询

在这里插入图片描述

至于CUDA的版本如何确定,我们在下一节说明。

6.2 确定CUDA型号

6.2.1 首先根据自己的显卡型号确定显卡算力

查询网站查询显卡算力

截图如下:

在这里插入图片描述
……
在这里插入图片描述

从而可以确定,Geforce RTX3060显卡的算力是8.6。

6.2.2 根据算力,匹配合适的CUDA版本

(1)进而可以初步确定适配的CUDA版本有11.1-11.4、11.5-11.7.1、11.8、12.0-12.4。

在这里插入图片描述

(2)这里我们还需要注意,我们的CUDA版本不可以超过显卡可以支持的版本,具体查询方法如下:

1)打开NVIDIA控制面板,进入系统信息

在这里插入图片描述

2)进入组件,就可以查到版本号了,这是向下兼容的,我们安装的CUDA版本只要小于这个版本号即可。

在这里插入图片描述
综合以上信息,可以确定所有适配的CUDA版本,从中任选一个下载即可。

6.3 确定torch的版本

(1)我们可以在官网首页进行查询

链接: Pytorch官网

在这里插入图片描述
将这段命令复制下来,打开Anaconda Prompt,激活需要配置的虚拟环境,然后粘贴运行这段代码即可进行安装(先别着急尝试安装,请继续往后看)。

(2)除了安装最新版本的pytorch,我们也可以寻找以前版本的Pytorch,根据CUDA的版本选择Pytorch版本。

链接:Pytorch以往版本

在这里插入图片描述
根据我们前面确定的CUDA版本,从而确定要安装的Pytorch版本,将指令复制到Anaconda Prompt,激活需要配置的虚拟环境,然后粘贴运行这段代码即可(先别着急尝试安装,请继续往后看)。

6.4 确定对应的python版本

要注意,我们现在已经确定了CUDA和Pytorch的版本,但是与此同时,还需要确定安装的python版本。

对应关系来源于 pytorch 官方 github,链接: Pytorch 官方 Github网址

在这里插入图片描述

如此,即可根据需要安装的Pytorch版本确定了需要安装的Python版本。

七、Pytorch_GPU版本的安装

接下来,我们开始进行深度学习环境的配置。

  • (1)首先,在Anaconda中创建一个新的虚拟环境,Python的版本号根据6.4部分的内容确定
  • (2)激活虚拟环境
  • (3)根据6.2部分确定的CUDA版本号,确定6.3部分需要安装的Pytorch版本
  • (4)将安装指令复制到Anaconda Prompt中,运行指令安装Pytorch

指令运行完成后,查看当前环境下的已经安装的包,可以看到,Pytorch已经完成安装。

在这里插入图片描
至此,我们的环境已经可以运行Pytorch编写的深度学习算法,但是只能只用CPU计算,速度较慢。

八、CUDA的安装

本节内容总结自以下文章:
链接:Anaconda Python Pytorch (GPU) 配置

上文6.2部分已经确定了要安装的CUDA版本,接下来进行安装。
链接:CUDA官网

1.点击Download进行下载。

在这里插入图片描述

2.双击打开下载后的安装包,设置安装路径

在这里插入图片描述

3.点击确定并继续

在这里插入图片描述

4.选择自定义

在这里插入图片描述

5.选择要安装的组件(建议全选),然后点击下一步。

在这里插入图片描述

6.设置路径,要先在目标目录下创建好文件夹(建议不要放在C盘)

(CUDA和CUDA Samples在一个文件夹下好像也行)

在这里插入图片描述

然后一直往下进行即可。

在这里插入图片描述
在这里插入图片描述
7.进入cmd,输入(可能需要重启一下)

nvcc-V

如图显示,即为安装成功。

在这里插入图片描述

九、cuDNN的安装

本节内容有部分总结自以下文章:
链接:Anaconda Python Pytorch (GPU) 配置

接下来下载cuDNN:
链接:cuDNN下载地址

1.进入官网,找到适合自己CUDA版本的cuDNN,点击进入。

在这里插入图片描述

2.下载.zip文件(.deb是Ubuntu系统使用的安装包,Windows系统下载zip即可)

在这里插入图片描述

3.下载后解压

在这里插入图片描述

4.将三个文件夹复制对应文件夹下(该路径在第八章第6部分有设置)
在这里插入图片描述

至此,cuDNN完成安装。

十、检验环境是否配置成功

我们已经完成了所有的配置,现在来检验一下我们的配置是否成功。

1.首先,我们利用Pycharm新建一个项目(选择刚刚配置好的虚拟环境的Python解释器)

2.运行以下代码(代码来源《python深度学习—基于pytorch》)

import torchif __name__ == '__main__':# 测试CUDAprint("Support CUDA?:", torch.cuda.is_available())x = torch.tensor([10.0])x = x.cuda()print(x)y = torch.randn(2, 3)y = y.cuda()print(y)z = x + yprint(z)# 测试CUDNNfrom torch.backends import cudnnprint("Support cudnn?:", cudnn.is_available())

3.得到输出结果如下

在这里插入图片描述

至此所有配置全部完成。

恭喜你,已经可以调用GPU进行深度学习的计算了!!

附录

本文引用、转载了许多文章、博客、视频的内容,在此对所有作者一并表示感谢,并列出所有参考内容,方便大家查阅:

参考文献

链接:Pytorch深度学习环境配置(GPU版本)
链接:pytorch 的一些介绍以及常用工具包展示
链接:CUDA、cuDNN以及Pytorch介绍
链接:【python编程环境安装】全网最详细python环境安装。pycharm和anaconda手把手安装教学
链接:Anaconda安装-超详细版(2023)
链接:PyCharm安装教程,图文教程(超详细)
链接:Anaconda创建、激活、退出、删除环境及管理环境中的包相关命令——最新全面直观版
链接:Anaconda 创建环境、删除环境、配置镜像源、安装包
链接:w11下载anaconda在d盘,新建的虚拟环境总是在c盘怎么解决
链接:windows系统安装显卡驱动软件和CUDA11.1的详细教程
链接:Anaconda Python Pytorch (GPU) 配置
吴茂贵,郁明敏,杨本法,李涛,张粤磊. Python深度学习基于PyTorch[M]. 北京:机械工业出版社,2019

相关文章:

Python深度学习环境配置(Pytorch、CUDA、cuDNN),包括Anaconda搭配Pycharm的环境搭建以及基础使用教程(保姆级教程,适合小白、深度学习零基础入门)

全流程导览 一、前言二、基本介绍2.1全过程软件基本介绍2.1.1 Pytorch2.1.2 Anaconda2.1.3 Pycharm2.1.4 显卡GPU及其相关概念2.1.5 CUDA和cuDNN 2.2 各部分相互间的联系和安装逻辑关系 三、Anaconda安装3.1安装Anaconda3.2配置环境变量3.3检验是否安装成功 四、Pycharm安装五、…...

月影护眼大路灯怎么样?书客|月影|霍尼韦尔超硬核实力性能测评pk!

月影护眼大路灯怎么样?选到专业优质的护眼大路灯是真的可以使我们在用眼时减少疲劳感,达到护眼效果,但如果不慎买到劣质的护眼灯产品,不仅达不到健康的环境光,还越用越觉得眼睛疲劳感加重,在水深的护眼灯市…...

邮件安全篇:邮件传输加密(SSL/TLS or STATRTTLS)

1. 前言 使用过邮件客户端的同学一定见过下面这张图。这是客户端账号配置界面,里面有SSL、STARTTLS选项。刚接触邮件客户端的同学肯定会有这些疑问:什么是SSL?什么是STARTTLS?两者有什么区别?具体该如何选择呢&#x…...

【系统架构设计 每日一问】三 Redis支持事务么,Redis的事务如何保证

实际上,关于Redis事务的说法“Redis 的事务只能保证隔离性和一致性(I 和 C),无法保证原子性和持久性(A 和 D)”并不完全准确。下面我将分别解释Redis事务的四个特性:原子性(Atomicit…...

【中项】系统集成项目管理工程师-第4章 信息系统架构-4.3应用架构

前言:系统集成项目管理工程师专业,现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试,全称为“全国计算机与软件专业技术资格(水平)考试”&…...

DasViewer打开Revit输出的fbx格式的模型,为啥一团黑?

答:这个应该是没有读取到贴图文件。贴图文件和obj文件需要在同级目录下面。 DasViewer是由大势智慧自主研发的免费的实景三维模型浏览器,采用多细节层次模型逐步自适应加载技术,让用户在极低的电脑配置下,也能流畅的加载较大规模实景三维模型,提供方便快捷的数据浏览操作。 免…...

【05】LLaMA-Factory微调大模型——初尝微调模型

上文【04】LLaMA-Factory微调大模型——数据准备介绍了如何准备指令监督微调数据,为后续的微调模型提供高质量、格式规范的数据支撑。本文将正式进入模型微调阶段,构建法律垂直应用大模型。 一、硬件依赖 LLaMA-Factory框架对硬件和软件的依赖可见以下…...

Training for Stable Diffusion

1.Training for Stable Diffusion 笔记来源: 1.Denoising Diffusion Probabilistic Models 2.最大似然估计(Maximum likelihood estimation) 3.Understanding Maximum Likelihood Estimation 4.How to Solve ‘CUDA out of memory’ in PyTorch 5.pytorch-stable-d…...

初学51单片机之指针基础与串口通信应用

开始之前推荐一个电路学习软件,这个软件笔者也刚接触。名字是Circuit有在线版本和不在线版本,这是笔者在B站看视频翻到的。 Paul Falstadhttps://www.falstad.com/这是地址。 离线版本在网站内点这个进去 根据你的系统下载你需要的版本红线的是windows…...

【启明智显分享】甲醛检测仪HMI方案:ESP32-S3方案4.3寸触摸串口屏,RS485、WIFI/蓝牙可选

今年,“串串房”一词频繁引发广大网友关注。“串串房”,也被称为“陷阱房”“贩子房”——炒房客以低价收购旧房子或者毛坯房,用极度节省成本的方式对房子进行装修,之后作为精修房高价租售,因甲醛等有害物质含量极高&a…...

Linux 驱动学习笔记

1、驱动程序分为几类? • 内核驱动程序(Kernel Drivers):这些是运行在操作系统内核空间的驱动程序,用于直接访问和控制硬件设备。它们提供了与硬件交互的底层功能,如处理中断、访问寄存器、数据传输等。 •…...

ip地址设置了重启又改变了怎么回事

在数字世界的浩瀚星海中,IP地址就如同每个设备的“身份证”,确保它们在网络中准确无误地定位与通信。然而,当我们精心为设备配置好IP地址后,却时常遭遇一个令人费解的现象:一旦设备重启,原本设定的IP地址竟…...

layui table 浮动操作内容收缩,展开

layui table 隐藏浮动操作内容 fixed: right, style:, title: 操作,align:left, minWidth: 450, toolbar:#id分析: 浮动一块新增一个class layui-table-fixed-r 可以隐藏整块内容进行,新增一个按钮点击时间,然后进行收缩和展开 $(‘.layui-…...

Ubuntu24.04 NFS 服务配置

1、NFS 介绍 NFS 是 Network FileSystem 的缩写,顾名思义就是网络文件存储系统,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。通过 NFS,我们本地 NFS 的客户端应用可以透明地读写位于服务端 NFS 服务器上的文件,就像访问本…...

vue3使用html2canvas

安装 yarn add html2canvas 代码 <template><div class"container" ref"container"><div class"left"><img :src"logo" alt"" class"logo"><h2>Contractors pass/承包商通行证&l…...

OpenCV分水岭算法watershed函数的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 描述 我们将学会使用基于标记的分水岭算法来进行图像分割。我们将看到&#xff1a;watershed()函数的用法。 任何灰度图像都可以被视为一个地形表…...

laravel为Model设置全局作用域

如果一个项目中存在这么一个sql条件在任何情况下或大多数情况都会被使用&#xff0c;同时很容易被开发者遗忘&#xff0c;那么就非常适用于今天要提到的这个功能&#xff0c;Eloquent\Model的全局作用域。 首先看一个示例&#xff0c;有个数据表&#xff0c;结构如下&#xff1…...

Leetcode之string

目录 前言1. 字符串相加2. 仅仅反转字母3. 字符串中的第一个唯一字符4. 字符串最后一个单词的长度5. 验证回文串6. 反转字符串Ⅱ7. 反转字符串的单词Ⅲ8. 字符串相乘9. 打印日期 前言 本篇整理了一些关于string类题目的练习, 希望能够学以巩固. 博客主页: 酷酷学!!! 点击关注…...

OS:处理机进程调度

1.BackGround&#xff1a;为什么要进行进程调度&#xff1f; 在多进程环境下&#xff0c;内存中存在着多个进程&#xff0c;其数目往往多于处理机核心数目。这就要求系统可以按照某种算法&#xff0c;动态的将处理机CPU资源分配给处于就绪状态的进程。调度算法的实质其实是一种…...

【车辆轨迹处理】python实现轨迹点的聚类(一)——DBSCAN算法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、单辆车轨迹的聚类与分析1.引入库2.聚类3.聚类评价 二、整个数据集多辆车聚类1.聚类2.整体评价 前言 空间聚类是基于一定的相似性度量对空间大数据集进行分组…...

Apache Kylin

Apache Kylin 是一个开源的分布式分析引擎&#xff0c;提供 SQL 查询接口及多维分析&#xff08;OLAP&#xff09;能力以支持超大规模数据集。它能在亚秒级的时间内提供 PB 级数据的查询能力&#xff0c;非常适合大数据分析和报表系统。 ### 入门指南 #### 1. 环境准备 首先…...

为何Vue3比Vue2快

Proxy响应式 PatchFlag 编译模板时&#xff0c;动态节点做标记标记&#xff0c;分为不同的类型&#xff0c;如TEXT PROPSdiff算法时&#xff0c;可以区分静态节点&#xff0c;以及不同类型的动态节点 <div>Hello World</div> <span>{{ msg }}</span>…...

人工智能与社交变革:探索Facebook如何领导智能化社交平台

在过去十年中&#xff0c;人工智能&#xff08;AI&#xff09;技术迅猛发展&#xff0c;彻底改变了我们与数字世界互动的方式。Facebook作为全球最大的社交媒体平台之一&#xff0c;充分利用AI技术&#xff0c;不断推动社交平台的智能化&#xff0c;提升用户体验。本文将深入探…...

八股文之java基础

jdk9中对字符串进行了一个什么优化&#xff1f; jdk9之前 字符串的拼接通常都是使用进行拼接 但是的实现我们是基于stringbuilder进行的 这个过程通常比较低效 包含了创建stringbuilder对象 通过append方法去将stringbuilder对象进行拼接 最后使用tostring方法去转换成最终的…...

深度挖掘行情接口:股票市场中的关键金融数据API接口解析

在股票市场里&#xff0c;存在若干常见的股票行情数据接口&#xff0c;每一种接口皆具备独特的功能与用途。以下为一些常见的金融数据 API 接口&#xff0c;其涵盖了广泛的金融数据内容&#xff0c;其中就包含股票行情数据&#xff1a; 实时行情接口 实时行情接口&#xff1a…...

逆向破解 对汇编的 简单思考

逆向破解汇编非常之简单 只是一些反逆向技术非常让人难受 但网络里都有方法破解 申请变量 &#xff1a; int a 0; 00007FF645D617FB mov dword ptr [a],0 char b b; 00007FF645D61802 mov byte ptr [b],62h double c 0.345; 00007FF645D61…...

搜维尔科技:人机交互学术应用概览

人机交互学术应用概览 搜维尔科技&#xff1a;人机交互学术应用概览...

植物遗传转化相关介绍【卡梅德生物】

植物的遗传转化是指以植物器官、组织、细胞或原生质体作为受体&#xff0c;应用重组DNA技术&#xff0c;将外源基因导入植物基因组&#xff0c;以获得转基因植物的技术。目前应用最普遍的植物基因的遗传转化方法主要有农杆菌介导法和DNA直接转入法。 一&#xff0e;植物遗传转化…...

0711springNews新闻系统管理 实现多级评论

0611springmvc新闻系统管理-CSDN博客 0711springNews新闻系统管理项目包 实现多级评论-CSDN博客 数据库字段 需要添加父节点id&#xff0c;通过该字段实现父评论和子评论的关联关系。 对象属性 实现链表&#xff0c;通过一个父评论可以找到它对应的所有子孙评论。 业务层 实现…...

如何在Ubuntu上安装并启动SSH服务(Windows连接)

在日常的开发和管理工作中&#xff0c;通过SSH&#xff08;Secure Shell&#xff09;连接到远程服务器是一个非常常见的需求。如果你在尝试通过SSH连接到你的Ubuntu系统时遇到了问题&#xff0c;可能是因为SSH服务未安装或未正确配置。本文将介绍如何在Ubuntu上安装并启动SSH服…...

docker build时的网络问题

docker build时无法yum安装包&#xff0c;因为无法访问外网&#xff0c;无法ping通外网。 解决办法&#xff1a; systemctl stop NetworkManager.service firewall-cmd --permanent --zonetrusted --change-interfacedocker0 systemctl start NetworkManager.service systemct…...

Vue的安全性:防范XSS攻击与安全最佳实践

引言 随着Web应用的普及,前端安全问题日益受到重视。Vue作为当下流行的前端框架,其安全性也成为开发者关注的焦点。跨站脚本攻击(XSS)是常见的Web安全漏洞之一,本文将讨论如何在使用Vue时防范XSS攻击,并分享其他Vue中的安全最佳实践。 什么是XSS攻击? XSS攻击是一种将…...

ARM架构(一)—— ARMV8V9基础概念

目录 1.ARMCore的时间线2.ARM术语小结2.1 A64和arrch642.2ARM架构现在的5个系列2.3 微架构2.4 PE2.5 Banked2.6 ARM文档术语2.7 IMPLEMENTATION DEFINFD 和 DEPRECATED2.8 EL1t和EL1h 3 ARMv7的软件架构4 安全状态切换模型4.1 Secure state和Non-secure state介绍 5 Interproce…...

如何使用Python进行数据分析

Python是一种广泛应用于数据科学和机器学习领域的编程语言。本文将介绍如何使用Python进行数据分析&#xff0c;包括Python在数据分析中的应用场景、常用库和工具&#xff0c;以及实际案例分析。 一、Python在数据分析中的应用场景 数据清洗&#xff1a;处理缺失值、异常值&a…...

Python学习笔记40:游戏篇之外星人入侵(一)

前言 入门知识已经学完&#xff0c;常用标准库也了解了,pygame入门知识也学了&#xff0c;那么开始尝试小游戏的开发。 当然这个小游戏属于比较简单的小游戏&#xff0c;复杂的游戏需要长时间的编写累计开发经验&#xff0c;同时也需要一定的时间才能编写出来。现在的话还是嫩…...

R的数据集读取和利用,如何高效地直接复制黏贴数据到R

​​​​​​R语言自带了许多内部数据集,这些数据集不仅为初学者提供了丰富的练习资源,还为研究人员和数据分析师提供了方便的数据测试和模型验证工具。在这篇文章中,我们将详细探讨如何读取和使用数据集。 一、认识数据集 1、数据和数据集 数据(Data)是指以某种形式表示…...

@JsonProperty 踩坑

JsonProperty 在fastjson 和 hutooljson 中是不会生效的。 在 fastjson 中&#xff0c;对应的注解是 JSONField。如果你正在使用 fastjson 进行 JSON 的序列化和反序列化&#xff0c;并且想要改变字段的 JSON 属性名&#xff0c;你应该使用 JSONField 注解&#xff0c;而不是 …...

业务架构、数据架构、应用架构和技术架构分析

一文看懂&#xff1a;什么是业务架构、数据架构、应用架构和技术架构 TOGAF&#xff08;开放集团架构框架&#xff09;是企业广泛应用的架构设计和管理利器。其核心在于四大架构领域&#xff1a;业务、数据、应用和技术&#xff0c;助力组织高效运作。TOGAF&#xff0c;让架构设…...

android studio中svn的使用

第一步&#xff0c;建立一个项目。 第二步&#xff0c;share project。 第三步&#xff0c;选择存放的位置&#xff0c;然后添加提交信息&#xff0c;最后点击share。这样就可以在svn上面看到一个空的项目名称。 第四步&#xff0c;看到文件变成了绿色&#xff0c;点击commit图…...

敏捷CSM认证:精通敏捷Scum估算方法,高效完成项目!

咱们做项目的时候可能都遇到过这种情况&#xff1a;项目一开始信心满满&#xff0c;觉得 deadline 稳了。结果呢&#xff1f;各种意外状况频出&#xff0c;时间好像怎么都不够用了&#xff0c;最后项目只能无奈延期&#xff0c;整个团队都像霜打的茄子。 说到底&#xff0c;还…...

三、建造者模式

文章目录 1 基本介绍2 案例2.1 Car 类2.2 CarBuilder 抽象类2.3 EconomyCarBuilder 类2.4 LuxuryCarBuilder 类2.5 CarDirector 类2.6 测试程序2.7 测试结果2.8 总结 3 各角色之间的关系3.1 角色3.1.1 Product ( 产品 )3.1.2 Builder ( 抽象建造者 )3.1.3 ConcreteBuilder ( 具…...

MySQL-----索引

一、什么是索引 存储引擎用于快速找到记录的一种数据结构。 索引类似于目录。就比如我们要找书里的一段话&#xff0c;我们先按目录找&#xff0c;然后再具体定位&#xff0c;这样速度会很快。 二、索引的作用 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的…...

Webpack 5 Tree Shaking与Module Federation

Webpack是一个流行的JavaScript模块打包器&#xff0c;它在前端工程化中扮演着核心角色。Webpack 5引入了许多新特性&#xff0c;其中两个最值得关注的是Tree Shaking和Module Federation。这两个特性分别解决了代码体积优化和微前端架构的问题。接下来&#xff0c;我们将深入探…...

免费分享一套微信小程序图书馆座位预约管理系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序图书馆座位预约管理系统(SpringBoot后端Vue管理端)&#xff0c;分享下哈。 项目介绍 随着移动互联网技术的飞速发展和智能设备的普及&#xff0c;图书馆服务模式正在经历深刻的变革。本论文旨在…...

k8s入门:从安装到实际应用

Kubernetes (K8s) 入门指南&#xff1a;从安装到实际应用 Kubernetes 是一个开源的容器编排平台&#xff0c;用于自动化容器化应用程序的部署、扩展和管理。它能帮助你管理多个容器化应用程序&#xff0c;并确保它们在不同环境下的一致性和可用性。本文将介绍如何在本地环境安…...

基于Qt的上位机通用框架

0.前言 最近一年多的时间一直在开发设备控制相关的软件&#xff0c;加上之前在聚光的两年时间&#xff0c;前前后后开发这种设备控制类型的上位机软件也有三年的时间了。总结出了一套基于Qt的上位机编程框架&#xff0c;核心思想类似于C#的依赖注入&#xff0c;对象的初始化都…...

Vulnhub靶场DC-7练习

目录 0x00 准备0x01 主机信息收集0x02 站点信息收集1. 获取用户名/密码2. ssh连接目标主机3. drush命令修改Drupal密码 0x03 漏洞查找与利用1. Drupal写入php木马2. 连接shell3. 反弹shell并提权 0x04 总结 0x00 准备 下载链接&#xff1a;https://download.vulnhub.com/dc/DC-…...

吴恩达深度学习笔记1 Neural Networks and Deep Learning

参考视频&#xff1a;(超爽中英!) 2024公认最好的【吴恩达深度学习】教程&#xff01;附课件代码 Professionalization of Deep Learning_哔哩哔哩_bilibili Neural Networks and Deep Learning 1. 深度学习引言(Introduction to Deep Learning) 2. 神 经 网 络 的 编 程 基 础…...

(十)Spring教程——Spring配置概述

目录 前言 1.Spring容器高层视图 2.基于XML的配置 前言 在使用Spring所提供的各项丰富而神奇的功能之前&#xff0c;必须在Spring IoC容器中装配好Bean&#xff0c;并建立好Bean和Bean之间的关联关系。Spring的配置文件已经很精简了&#xff0c;但是广大的开发者希望它做得更…...

飞书群聊机器人自定义机器人接入,并实现艾特@群成员功能

飞书群聊机器人还是比钉钉的要麻烦一点&#xff0c;钉钉的直接通过手机号就可以艾特群里面的人&#xff0c;但是飞书的要想艾特群里面的人&#xff0c;需要使用用户的 Open ID 或 User ID。这两个ID怎么获取呢&#xff1f;还需要在飞书的开放平台上创建一个应用&#xff0c;然后…...