Pytorch(GPU)配环境原理:cuda+cudnn+pytorch配环境的每一步到底干了些什么?

2023-11-05

作者:18届cyl
时间:2022.5.11
参考文章:https://blog.csdn.net/qq_42406643/article/details/109545766

最近帮舍友配pytorch、cuda、cudnn环境的时候,回想起来自己两年以前也只会按照教程安装,例如像个白痴一样搜索cuda xx.x+cudnn x.x+pytorch1.x.0安装教程,顺着步骤来,中间错一步或者一步不一样,简直十万个草泥马路过。一直是出现什么错误就搜教程,按照教程试奇奇怪怪的命令,运气好的话突然就成功了,但始终不知道自己干了些啥
到现在配环境两个小时够够的(除非原环境是个屎)

温馨提示:
1、本篇文章需要读者有一定的基础(至少能分清anaconda与python,conda与pip,环境变量是什么意思的程度)
2、读本篇文章的时候多点耐心,本文倾向于给出在逻辑上先干什么再干什么最终达成目的,帮助读者去理解如何配pytorch
3、读懂本篇文章后足以全方位了解pytorch+cuda+cudnn到底怎么配。以后在安装过程中出现问题也可以自行快速解决
4、建议先迅速通读全文,对整体有个印象,然后再细细尝试每一个知识点
4、若是想要直接得到一套可行的命令行组合,请移步其他博客。
5、小白一点基础也没有没关系!读一遍不理解也记不住也没关系!建议收藏,多读几遍-其义自见。
一、配pytorch环境之前首先得知道cuda、cudnn、pytorch、torchvision、nvidia、nvidia图形加速驱动程序(nvidis 驱动程序)是啥?

pytorch有cpu版本的也有gpu版本的,cpu版本的通过conda或者pip安装就可以用。
炼丹玩家可以通过执行conda list查看自己安装的python库.第一步是能看懂pytorch的版本描述
在这里插入图片描述
例如我安装的这个是 适合在python3.6、cuda10.0、cudnn7.5.1环境下运行的1.1.0版本。带着cuda说明的一定是GPU版本,因为cpu运行不需要cuda.玩家可以对应着自己的版本描述理解一下。
其次玩家也需要理解:版本并不是一一对应关系而是多对多关系,比如cuda10.0可以与几种不同的cudnn兼容、cudnn8.0也可以与几种不同的cuda兼容。CUDA和CUDA Driver显卡驱动不是一一对应的,比如同一台电脑上可同时安装CUDA 9.0、CUDA 9.2、CUDA 10.0等版本。在不同版本间切换我常常使用更改环境变量的方式。(有人可能喜欢创建动态链接的方式)这里看不懂没关系,继续往下读。

读到这里有玩家可能会问cuda、cudnn、NVIDIA。
的关系是啥?
在这里插入图片描述
nvidia是英伟达公司,我们用的GPU通常是他家生产的,主要产品有GTX系列。有了显卡(GPU别名)还得需要驱动程序,英文名交NVIDIA Accelerated Graphics Driver,在安装某些东西的时候会出现这个单词,建议记住。那电脑上是否有驱动程序呢?打开cmd->执行nvidia-smi (无空格)如果有反应则代表有GPU并且安装了驱动程序。

CUDA是显卡厂商NVIDIA推出的运算平台。CUDA是一种由NVIDIA推出的通用并行计算架构,是一种并行计算平台和编程模型,但我们通常说的安装CUDAx.x则是指CUDA Toolkit即cuda工具包。

关于CUDA Toolkit (cuda工具包)就有的注意了:上面说了在cuda官网上下载的runfile是cudatoolkit下载起来蛮麻烦,那我从conda上直接执行conda install cudatoolkit也能下载下来一个东西是不是也行?答案是不行:anaconda是python版本管理工具也可以说是包管理工具那么他下载的只是一个名字叫做cudatoolkit的第三方库,这个可以理解为从官网下载的子集。但是从NVIDIA CUDA官网上下载的CUDA Toolkit则是还包括cuda编译器(nvcc)等等组件,如果没这些,也是无法运用cuda加速的。

cuDNN是NVIDIA专门针对深度神经网络中的基础操作而设计基于GPU的加速库。cuDNN为深度神经网络中的标准流程提供了高度优化的实现方式,例如convolution、pooling、normalization以及activation layers的前向以及后向过程。CUDA这个平台一开始并没有安装cuDNN库,当开发者们需要用到深度学习GPU加速时才安装cuDNN库,工作速度相较CPU快很多。所以还得想要在深度学习模型训练上加速还得下载cudnn。

至于pytorch、torch、torchvision、torchaudio这四个名词的意思,可以简单理解下载pytorch的时候其实是下载三个python第三方库一个叫torch(官网下载链接名称)、一个叫torchvision、一个叫torchaudio。不过如果执行conda list查看下载的第三方库就可以发现库的真实名字叫pytorch与torchvision和torchaudio。看名字也知道torchvision主要处理图片,torchaudio是音频。(用什么下什么)
在这里插入图片描述

看到这里没理解没关系,可以接着往下读。

其实我们需要的其实就是一个pytorch GPU版本的python第三方库,但是这个第三方库依赖有点多。看着刚刚的图也应该知道,应该从下往上安装,先查看硬件、驱动再下载cuda、cudnn最后下载torch、torchvision。当然也有自己的硬件只支持一部分版本的cuda,cuda版本又限制了cudnn、torch、torchvision版本的原因。当然既然是python第三方库肯定与python的版本有对应关系。

#在安装环境之前,我的建议是先查看一下目前自己的环境
#打开cmd或者linux终端
nvcc -V #查看之前是否装过cuda 之前装过也不用卸载,因为不同版本之间可以通过修改环境变量更换。
python
>>> import torch
>>> torch.__version__ #查看目前安装的pytorch版本
>>> torch.cuda.is_available() #查看是否可以使用cuda加速,只有有cuda且与pytorch兼容的情况才是True
# 如果返回True说明兼容
二、cuda 安装步骤释疑

第一步:玩家的笔记本需要有 NVIDIA英伟达的GPU芯片:右击“此电脑(或:我的电脑)”-->属性-->设备管理器-->显示适配器,会有显示如下代表我的显卡是GTX 1050 (显卡就是GPU),用服务器的朋友可以直接看第二步(应该都有)
在这里插入图片描述

第二步:玩家需要有GPU的驱动程序,打开命令行cmd -> 输入 nvidia-smi nvidia-smi命令的意思是查看英伟达驱动程序,执行完只要有这个界面就说明有驱动程序(自然也有NVIDIA显卡)
在这里插入图片描述
没有驱动程序的参考文章或自行搜索:https://blog.csdn.net/zataji/article/details/123104569
看到图片中我红框圈住的文字代表 我的显卡最高支持到CUDA11.1.也就是只能安装cuda11.1以下的版本如cuda10.0、cuda10.1、cuda10.2等等,玩家根据自己的配置确定自己的显卡支持的cuda版本范围。(注:一般都是向下兼容的,但也有像3090只支持11.0以上的情况)

第三步:确定好cuda支持的版本范围后下载cuda Toolkit(cuda工具包)

前文解释过,cuda是英伟达的一个计算平台,而我们平时所说的配环境中的安装cuda是安装cuda工具包:选择安装cuda toolkit版本:https://developer.nvidia.com/cuda-toolkit-archive
点击链接进入界面:
在这里插入图片描述
点击自己需要安装的版本,我点击的是11.0,因为我的显卡支持11.1以下的版本。
在这里插入图片描述
上面选择runfile而不是deb,deb文件安装方式是基于debian发行版本对应的安装方式(了解即可),我个人使用常常runfile,感觉还是更简单。至于选择local而不是network则是因为网络安装慢死,还有中断风险

有玩家看到这有疑问了,我的界面这里怎么没有wget命令,只有sh .run命令呀!有图形界面可以点击网页安装,那linux服务器无操作界面咋办呀!遇到这种问题:我通常使用wget http://.......命令来通过cuda下载链接下载cuda toolkit文件那这个网址(链接)应该是啥呢?如下图这种情况,可以通过右键->复制链接获取下载链接!(注:右键复制的链接有时候会发现最后下载的文件没有.run修饰导致执行sh cuda_x.x.x_x.x_linux.run这条命令的时候找不到文件,但没关系,对应的修改sh+文件名这条命令,也去除.run结尾)
有玩家又有疑问了!这个安装教程下面还有一个Patch 1是什么东西?其实是补丁的意思,遇到这种情况不仅需要下载上面的的.run文件 还需要下载下面这个补丁,下载方式也是如果有图形界面就点击下载按钮,下载到本地后到相应目录下执行sudo sh xxxxxxx.run即可,若无图形界面则通过wget http://......下载文件,链接通过右键->复制链接获得,然后到相应目录下执行sudo sh xxxxxxx.run
在这里插入图片描述
在有图形界面的情况下按照导航安装就好了,第一次安装选择自定义->除了Visual Studio Integration外全选,这是让安装一些组件,也不怎么占内存,防止出错,后面安装可以安装精简版的。尤其需要注意的是不要安装Visual Studio Integration这玩意,会导致安装失败。
在这里插入图片描述

linux无图形界面安装疑问会多一些:

Do you accept the previously read EULA?
accept/decline/quit: accept #您接受之前阅读的EULA吗?许可协议什么的 输入accept接受

NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?
(y)es/(n)o/(q)uit: n #询问是否安装NVIDIA加速图形驱动程序?这里就是指是否安装nvidia驱动程序,**如果前面nvidia-smi执行后查询到了驱动程序就选择no。**重复安装会出现问题,还得费劲删除一个。

Install the CUDA 10.0 Toolkit? #安装CUDA 10.0工具包?输入y
(y)es/(n)o/(q)uit: y

Enter Toolkit Location [ default is /usr/local/cuda-10.0 ]:直接Enter键 #安装地址,建议linux下就安在默认地址usr/local/cuda-x.x,到时候好找(我看了无数教程,windows安在非系统盘防止出问题,但linux都是安在usr/local)

Do you want to install a symbolic link at /usr/local/cuda? #问是否建立动态链接 我这里都选择no,我理解的动态链接是一个映射,意思是说在环境变量中的/usr/local/cuda,实际上是指前面我们下载的 /usr/local/cuda-10.0这个文件目录,也就是如果我之前下载过一个cudax.x.x到/usr/local/cuda,然后将环境变量指向了/usr/local/cuda,在我又下载了cuda10.0,现在我肯定是想要使用cuda10.0,然后通过使用动态链接将/usr/local/cuda映射到 /usr/local/cuda-10.0就不用改环境变量了,但是问题是我可能下载了多个cuda版本,本来我想换哪个的时候改一下环境变量就好了(linux改环境变量很简单),但是如果有动态链接的话,单看目录我也不知道最终指向哪里了,反而造成管理上的混乱。

(y)es/(n)o/(q)uit: n

Install the CUDA 10.0 Samples? #询问创建一个简单的可以测试是否下载成功的例子,随便,即使不下载也有其他测试方式
(y)es/(n)o/(q)uit: y

安装好软件以后需要依次执行(注意修改一下CUDA_HOME=/usr/local/cuda-x.x改成自己的版本,需要cd usr/local 进入默认安装目录,或者自己设定的安装目录,确认一下自己安装的位置。第一次安装文件名应该是cuda没有版本号后缀,应该是后续安装才有版本号,所以确认一下是改成cuda还是改成cuda-x.x)

# 下面三步是添加环境变量,设置三条的好处是,以后想要改成别的cuda版本只需要改第一条的版本就好了.**缺点是要记得自己新增的名字是CUDA_HOME**.要是怕记不住就把下面三条自行改成两条,不再赘述
export CUDA_HOME=/usr/local/cuda-10.0 
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64 
export PATH=${CUDA_HOME}/bin:${PATH}
#这一步其实是进入主目录,但是也有让刚刚修改的环境变量生效的功能
source ~/.bashrc
# 这一步是查看环境变量文件,不过需要图形界面
sudo gedit ~/.bashrc
# 无图形界面 查看环境变量 PATH
sudo echo $PATH  
# 无图形界面 查看环境变量 CUDA_HOME
sudo echo $CUDA_HOME

安装完后查看 是否安装成功执行nvcc -V 或者 nvcc --version,这个命令中nvcc是cuda的编译器,可以从CUDA Toolkit的/bin目录中获取,类似于gcc就是c语言的编译器。这个命令只要能执行就说明cuda安装成功了。-V则是代表查看版本,执行后显示的版本即当前安装的cuda版本。 如果不能执行,就看一下安装目录,默认是/usr/local/是否有文件叫cuda或者cudax.x,如果有则查看环境变量是否加入成功,如果也加了就看看是否让新更改的环境变量生效。(无非就是这三个地方要对应清楚)

有玩家大呼,怎么我刚刚安装的是10.0,现在显示的是11.0呀!(总之版本好像不是自己刚刚安装的),那就可以回过头去查看一下/usr/local/这个目录下有几个cuda,然后看一下环境变量中指向的cuda,如果发现指向的是新安装的地址呀,那可能还有动态链接在作怪了。这里提供个歪方法:新建一个动态链接将你安装的cuda所在目录指向环境变量里面写的目录,以毒攻毒。但更好还是仔细查看一下问题出在哪!

直到能顺利执行nvcc -V 并且查看版本是自己想要的才算成功。

三、CUDnn安装释疑

安装CUDnn基本上只有一个点需要注意:需要根据安装的cuda版本去下载指定版本范围的CUDnn
点击 官网链接 :https://developer.nvidia.com/rdp/cudnn-download
在这里插入图片描述

在这里插入图片描述
无图形界面的linux系统用老方法 wget http://..........
下载链接通过右键->复制链接获得

没怎么遇到过CUDnn安装问题。如果有其他疑问,可以在评论去留言。我后期加上

四、pytorch安装释疑

一般情况下安装pytorch gpu版本的教程都会让去pytorch官网:https://pytorch.org/get-started/locally/
在这里插入图片描述
玩家要问了?这里怎么只有10.2和11.3可以选? 我们来看一下它提示的命令conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch

conda 是指 让使用 conda包管理工具(python版本管理工具)安装 四个第三方库 install 是指下载的意思 pytorch
torchvision torchaudio cudatoolkit=10.2
是四个python第三方库,我们在第一部分介绍的时候解释过,我们**平时说的安装pytorch其实是安装
pytorch和torchvision和torchaudio三个python第三方库。**或者是像我一样做视觉不需要torchaudio就可以把命令改成conda install pytorch torchvision cudatoolkit=10.2 -c pytorch,删掉torchaudio。这里cudatoolkit第三方库前面也解释过了,我们平时说的安装cuda是在cuda官方网站上通过下载.run文件(runfile)然后安装CUDA
Toolkit 这个里面还有 cuda编译器啥的一堆组件。通过conda
下载的cudatoolkit是同名python第三方库
。所以有玩家只通过conda下载cudatoolkit库是不行的!至于
=10.2就是指定版本了。
-c pytorch 是一个指定安装通道的东西。

这么看命令是不是自己想要什么环境就可以直接安装了?无非是改一下cudatoolkit后面的版本号!是不是三个拆开来执行 conda install pytorch -c pytorch、conda install torchvision -c pytorch、conda install cudatoolkit=10.2 -c pytorch也能正确地安装好库?答案是不行的:前面也说过pytorch版本要受cuda版本约束,要是把命令拆开还怎么通过cuda版本约束呀

但其实还有个很坑的的问题!在提出这个问题之前想请玩家思考一下,凭什么conda、pip这两个包管理工具通过执行conda install+包名,或者pip install +包名就可以成功下载?我电脑上什么都没有,它凭空造出来的?还有个问题是 大家应该了解过编译安装,就是自己在网上找到轮子以后在本地安装。再不济应该也听说过给pip换源,什么清华源、豆瓣源,都是给pip某个文件里面加一个网址!说到这玩家们应该也知道pip和conda其实是通过从某个网站上根据你提供的包名自动寻找一个随机版本的轮子然后给你下载到本地。或者像是pip install cudatoolkit=10.2这种就根据包名和版本号去给定的网站寻找相应的轮子然后下载到本地。如果找不到就返回错误:找不到这个包

那另一个问题呼之欲出:如果给定的网站中没有自己想要的gpu版本的轮子怎么办?一般情况下,普通的包是随便下载一个版本都兼容且成熟的,但pytorch就比较坑了,很多通过执行conda install pytorch torchvision cudatoolkit=10.2 -c pytorch的时候因为找不到GPU版本的pytorch就自动下载一个CPU版本的还他妈的不报错。比如清华源就是这样

所以接下来就写一个编译安装的方法:**1、找到自己想要的轮子 2、本地安装。**重点就是第一步

第一步 找到自己想要的轮子:conda\pip原理都是一样的,不同版本也都可以通过这种方式下载,通过点不同组合直到找到 底下出现一个网址
在这里插入图片描述
我这里给出一个:https://download.pytorch.org/whl/cu113
看到这个网址也能大概明白,https://下载、pytorch/轮子/cuda11.3版本。 想要下载cuda10.0就把最后三个数字改成100,想下载11.0就改成110.是不是很简单。
在这里插入图片描述
然后想要下载pytorch这个第三方库就点击torch,想要下载torchvision就点击torchvision。同理torchaudio。。。
以torch为例:点击以后是, ctrl + F查询,想下载哪个pytorch版本就输入哪个版本(但其实我是输入cuda版本),因为主要受到cuda版本限制。我就随便输入了110,想下10.1就输入101即可
在这里插入图片描述
那看到这么多版本都兼容cuda11.0,那我下载哪个呢?我们看一下链接描述:

torch-1.7.0+cu110-cp36-cp36m-linux_x86_64.whl
torch:是指这个包是pytorch第三方库的轮子
1.7.0: pytorch版本
cu110: 是指本pytorch库与cuda11.0兼容
cp36:是指本pytorch库需要运行在python3.6上
linux_x86_64:是指本pytorch库适合的操作系统是64位linux
那玩家就根据自己的需要下载相应的版本了,一般来讲,主要是管cuda的版本和操作系统的版本,python版本可以撞一下运气,不完全一样,最好还是一样防止出错。这里就看出anaconda的好处了。

第二步:本地安装
将轮子下载到本地以后,通过执行pip install xxxx.whl或者conda insatll xxx.whl 安装即可。无操作系统的linux想要安装就通过 wget http://.....下载到本地,然后再通过pip 或者conda 下载即可

第三步:查看是否安装成功通过python 调用 torch库 检测cuda是否能够使用。如果能使用代表安装成功

命令行输入
python
import torch #pytorch第三方库
print(torch.cuda.is_available()) #是否能够使用cuda
# 如果输出True则代表安装成功
print(torch.__version__) #查看pytorch版本
# 确认是自己想要的版本,别出现误打误撞cuda能用却不是自己想要的版本的情况
exit() #退出python环境

最好最后再输入一下 nvcc -V确认一下cuda版本(首尾呼应)

感谢各位玩家耐心看到最后,祝大家炼丹顺利!

五、结尾

写这篇文章一是方便我自己后续查看,二是真心觉得自己不算聪明,学东西很慢,当然也有点懒:之前每次配环境都不搞清楚每一步的意思,只要能执行就不再追究,出错就疯狂调bug,但其实很多bug都是因为所给教程忽略了某些步骤导致的必然出错。所以把目前我对配pytorch环境的理解写下来,希望给他人带来一些方便。也希望自己能在研究生阶段称为炼丹高玩。

创作不易,请勿转载,如果方便的话点个赞呗!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pytorch(GPU)配环境原理:cuda+cudnn+pytorch配环境的每一步到底干了些什么? 的相关文章

随机推荐

  • Nuget配置修改-globalPackagesFolder(默认包存放位置)

    环境 nuget windows2010 nuget默认的全局包下载地址一般为 C Users username nuget packages 项目多了之后 nuget下载的包就回慢慢的变多 导致c盘被大量占用 这时候我们想要将nuget的
  • (三-3)机器学习中调参的基本思想+随机森林+实例(共3小节,文章代码即文章中所有的代码)

    通过画学习曲线 或者网格搜索 我们能够探索到调参边缘 代价可能是训练一次模型要跑三天三夜 但是在现实中 高手调参恐怕还是多依赖于经验 而这些经验 来源于 1 非常正确的调参思路和方法 2 对模型评估指 标的理解 3 对数据的感觉和经验 4
  • HEVC 编解码资源

    资料 overview 等 csvt系列详见HHI主页 适合 入门 Encoder Description 适合入门 Recommendation H 265 pdf 2016 12 22 标准文档 适合 提高 解码 High Effici
  • 订单管理系统功能

    订单管理系统的工作流程是首先对客户的订单信息进行接收 然后对订单进行处理 及时掌握交易动态 在有突发状况发生时及时反馈 订单管理系统是物理管理系统中不可缺少的一部分 商淘云跟您分享一般的订单管理系统有哪些功能 1 业务流程管理 包括订单管理
  • 程序员屌丝逆袭之路不是炒股

    最近这一段时间 你身边是不是大多数人都在谈论股票 那就对了 无论走到哪都能听到 今天又绿了 我的股票跌停了 冲上5000点啦 等等之类的话 我还不是一个股民 一直都不是 因为不懂 不敢入市 因为有人跳楼 害怕入市 最主要的原因是 因为手里没
  • 3.30 OrCAD中原理图文件怎么进行DRC检测?

    笔者电子信息专业硕士毕业 获得过多次电子设计大赛 大学生智能车 数学建模国奖 现就职于南京某半导体芯片公司 从事硬件研发 电路设计研究 对于学电子的小伙伴 深知入门的不易 特开次博客交流分享经验 共同互勉 全套资料领取扫描文末二维码 温馨提
  • 如何判断用户是否已关注公众号

    一 微信公众平台配置 1 获取appid appsecret 添加白名单 登录微信公众平台 进入基本配置 开发中需要用到两个参数 appId和appSecret appSecret只展示一次 需保存下来 否则需要重置获取 获取access
  • 以太坊day(4)

    以太坊day 4 一 遇见的错误 1 1 Error Invalid JSON RPC response 二 goland上进行合约的开发 2 1 需要的源 2 2 合约文件 2 3 编译合约 2 4 部署合约 2 5 获取合约实例 2 6
  • AIGC的1000+篇文章总结

    AIGC的1000 篇文章总结 本文收集和总结了有关AIGC的1000 篇文章 由于篇幅有限只能总结近期的内容 想了解更多内容可以访问 http www ai2news com 其分享了有关AI的论文 文章 图书 query AIGC AI
  • vue中的函数式组件

    用过react的同学都知道 函数式组件在react中的应用是很流行的 那如何在vue中使用函数式组件呢 什么是函数式组件 熟悉react的同学应该都知道 react中的函数式组件其实就是一个接收一些prop的函数 然后返回HTML vue的
  • Active Directory配置与应用

    Active Directory 配置与应用
  • 菜鸟学习nodejs--回调函数

    什么是回调函数 如果大家使用过JQuery 那么会掉函数就像家常便饭一样 例如我们经常会给一个事件传一个function的参数 其实这就是回调函数 回调函数就是我们所说的异步 如果还是有点蒙 那么我们来举个例子 我们新建一个index1 h
  • 基于混沌系统和DNA算法的RGB图像加密(Matlab代码实现)

    目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 1 概述 本文介绍了基于混沌系统和DNA编码的彩色数字图像加密 解密 抗噪声性能分析以及抗裁剪性能分析 2 运行结果 3 参考文献 1 李红凯 基于混沌理论和DNA序列编码的
  • Qt之点击QLineEdit显示软键盘

    点击QLineEdit显示软键盘 在嵌入式开发时 不能通过鼠标键盘输入是很常见的 这时候就需要通过软件层 实现软键盘和输入法来满足用户需求 一般来说 软键盘的显示通常和QLineEdit的点击事件挂钩 而QLineEdit与QPushBut
  • opencv之透视变换

    透视变换 Perspective Transformation 是将图片投影到一个新的视平面 Viewing Plane 也称作投影映射 Projective Mapping 原理 通用的变换公式为 u v是原始图片左边 对应得到变换后的图
  • VUE嵌套路由导致父组件重复渲染BUG(虚惊一场)

    哲神最近在做VUE开发 开发一个模块需要用到嵌套路由 路由如下 path dashboard component gt import views dashboard index name dashboard meta title 数据看板
  • 详解域名和DNS

    目录 一 概念名词 1 域名 1 1域名 1 2二级域名和多级域名 1 3域名对于我们有什么用呢 2 DNS Domain Name System 域名系统 2 1 什么是域名系统 3 CDN Content Delivery Networ
  • golang操作MySQL的具体案例

    golang操作MySQL的具体案例 代码篇的基础操作 package main import fmt github com go sql driver mysql github com jmoiron sqlx type Profile
  • 云服务器只能显示控制台吗,云服务器控制台使用方法

    云服务器控制台使用方法 内容精选 换一换 用户在购买弹性云服务器时会选择弹性云服务器的规格及登录方式 如果选择密钥对登录方式 需要选择已有密钥对或创建新的密钥对 如果没有可用的密钥对 请在控制台创建新的密钥对进行使用 在云服务器控制台左侧导
  • Pytorch(GPU)配环境原理:cuda+cudnn+pytorch配环境的每一步到底干了些什么?

    作者 18届cyl 时间 2022 5 11 参考文章 https blog csdn net qq 42406643 article details 109545766 最近帮舍友配pytorch cuda cudnn环境的时候 回想起来