PyTorch 深度学习:60分钟快速入门(官方)Edit on GitHub 本章为官方网站的[Deep Learning with PyTorch:A 60 Minute Blitz]...
pytorch-cookbook.readthedocs.io2025年6月26日 · CSDN问答为您找到5060显卡、cuda、pytorch兼容问题相关问题答案,如果想了解更多关于5060显卡、cuda、pytorch兼容问题 深度学习、pytorch 技术问题等相关问答,请访问CSDN问 …
ask.csdn.net文章浏览阅读859次,点赞26次,收藏16次。pytorch学习 60分钟闪电战 莫听穿林打叶声,何妨吟啸且徐行。图文教程:pytorch官方教程(优先学“60分钟闪电战”)...
m.blog.csdn.net2025年7月19日 · CSDN问答为您找到GPU算力6.1支持的最大PyTorch版本是多少?相关问题答案,如果想了解更多关于GPU算力6.1支持的最大PyTorch版本是多少? 青少年编程 技术问题等相关问答,请 …
ask.csdn.net最近很多小伙伴在学PyTorch框架过程当中,遇到一个小问题,我们要学的东西感觉特别多,函数也多,模块也多。那咱们应该照什么样的顺序,能把这个框架给它系统掌握起来?我建议来这样,就是咱们分成三步骤。第一个咱们叫做快速去理解,快速去使用。我们先把PyTorch当中最基础的模块,比如说神经网络怎么用,训练模块怎么搭建,测试还有数据增强这些最简单模块,咱们找几个用案例完整的熟悉一下整个框架在做实践数据当中逻辑是什么,方法是什么?这时候我不建议大家去背PyTorch,也不建议你们去深入每一个函数,每一个细节去看不同参数对这有什么影响?这些咱们先不要看,先把整体逻辑学会了,我要做一个完整的训练流程。我需要有哪些函数,每个函数做什么东西的,从整体上去理解,大概解决一个问题,我都需要什么东西。第二件事儿,咱们去深入到不同的算法当中,这些算法可能就是神经网络、卷积网络Transformer等等,还有什么递归网络这些网络,我建议大家咱们都去找一个实际的例子。这些例子当中,比如说我们做卷积网络,咱们可以选择一个图像识别的例子的数据是怎么处理的,怎么做data loader,比如怎么做我的数据集。那我在训练的过程当中,有哪些个训练的方法?在最终出来来的结果?这就是结合案例,我们去看细节,看细节过程当中,我建议大家咱们最好再深入到什么每一个函数对结果的影响,我去变换些函数,变换一下,参数不同参数设置有什么样这一步,咱们要把参数的影响学一学熟悉熟悉这些参数的作用是什么?那第三个阶段,我建议大家咱们要深入到源码当中了。我所谓的源码并不是说PyTorch的框架源码,而是一些实际项目的源码。这个地方我建议大家咱们去做一个叫debug的操作debug,就是比如说我去一行一行代码,去看每行代码做什么东西。我建议大家围绕着这两个项目吧,咱们前期不要选太难,你可以选第一个叫做UP-Net,它是一个做视觉分割的,我觉得非常简单的模型,但是它解决了一个实际的模型,找一个UP-Net分割的源码,我们去debug一遍。那你分割做完之后,再建议debug另外一个叫做ViT,ViT是视觉Transformer这两个代码,我觉得从整体拿过来来说不是特别大,可以让你大概花个几天时间,咱们就可以把源码的东西也过一遍。所以我建议大家咱们学PyTorch是按照这三步走,先快速去熟悉基本的使用,再去深入细节去看一看不同函数、不同模块的作用,再去debug,深入解决一个完整的事,每一步该怎么去做。视频时长上线感兴趣,小伙伴别忘了点开我们的评论区,由我们的专属导师,根据大家的需求,给大家量身定做我们专属的学习规划,别忘记还能领取我们的学习路线图。Hello,大家好,我是唐老师的助理小木。接下来给大家分享的是唐老师历经了七年打造的一套AI算法实战班的一个课程。感兴趣的同学可以扫码咨询或者是扫码领取咱们的一个路线图。作为参考,下面带大家来了解一下人工智能要如何去学习,以及跟着唐老师要如何去学,唐老师会带着大家怎么去学。左边是咱们的一个学习路线图。那右边是唐老师能够给大家提供的一个服务。那首先我们这个班级主要打的是一个定制化。何为定制化?就是我们可以根据你的情况去进行因材施教,因材施教,根据你的情况去给你定制专属的学习计划打个比方。比如说现在咱们企业中要做一个项目,然后你比较着急,那这个时候你肯定是没有时间等的,也没有时间说,我从头开始学,那么我们会根据你的需求,让你快速基于你的情况,根据自身的一个基础情况去达成,这个是咱们定制化的一个好处,包括学生也好,就业转行也好等等,都是因材施教。OK那我们的上课安排是怎么样?我们总共有两种学习模式,一个是直播,一个是录播,录播会把往期全套的给到咱们开通。那直播,唐老师会带着大家在每周六晚上的八点,每周直播两个小时,如果大家不着急的情况下,可以跟着老师的直播去走,跟着老师直播去走。如果现在比较着急,那么我们可以定制化的,通过录播快速去达成你的一个需求。那然后整体内容学习完假设说每天有两个小时的一个时间,大概在六个月左右是能够达到一个就业的一个水平。再往下走,咱们的一个学习环境是自主研发了一个智能的一个学习平台,能够去对应的生成,每个章节每个节点的一个知识点的导图,包括一些文本总结,以及去生成一些作业等等,这个基本上也都是非常前沿的,甚至说是属于什么什么唯一。然后往下面,我们会提供云服务器,为什么提供云服务器?因为AI它是比较吃算力的,很多同学他的硬件配置它其实没有那么高。那么我们想要去学好AI做一些大型项目,那肯定对于算力方面有要求。所以这一块我们是提供的,以及下面有一些日常指导老师的三对一,包括我们的课程特点是基于项目实战,基于项目底层去做讲解手写代码以及项目开发。不单单教大家的是基础理论,包括我们还提供两项的一个服务,一个是论文指导。如果有论文的学生可以选择第五项,一个是就业指导。如果有就业的学生,也可以选择第六项OK那今天的分享基本上就到此结束了。感兴趣的同学可以扫码联系咱们老师,或者是领取咱们完整体系的学习路线,感谢大家的收听。
page.sm.cn今晚给大家带来这个分布式训练。PyTorch实际上是一个人工智能框架,今晚我们会使用这个PyTorch以及分布式的训练。好,咱们今天晚上说分布式来去训练模型。首先我们如果先不去分布式训练,我们先把这个PyTorch给它去使用一下。大家可以看到,事实上这里面当前这个代码大家能看到吗?像这里面你可以看到,首先这边import torch,这个实际上就是PyTorch。当然首先我们在这个环境里面,我已经安装了这个PyTorch了,这些导包我就不再一一去说了。我们往下来看,实际上这里面我们可以看到,首先这边device等于cuda,这个是我们未来想把这个我们待会儿想把这个代码跑在GPU上面。当前我这边是远程登录了一个服务器节点。这边我把这个关掉,重新打开一个窗口。大家可以看到当前这个服务器节点列表服务器节点,实际上它是有两张显卡。大家可以看到这里面有两张显卡,这两张显卡的型号都是这个英伟达的RTX 3080 Ti,每张显卡大概有十二G的这样一个显存。首先我们先来看这个PyTorch来去训练一个模型。这两行十一行和十二行这两行相当于是他会去读一个数据,他会去读一个数据。如果这个数据你本地没有,他会把这个数据给你下载到这边,我们指定的data文件夹里面去。这边在当前这个脚本平行这个目录左边大家看到只有一个data文件夹,这个data文件夹,它下面会有一个MNIST,这个事实上是一个手写数字识别的这样一个数据集,然后这下面会有测试集和训练集,这边会有用于测试的数据集,然后下面这边会有用于训练的,用于训练的train训练集。接下来我们下面这边是通过DataLoader,然后把这个训练集和测试集给它去加载一下,这个加载顺便指明一下一些参数。然后这边有了trainloader和testloader。我们的数据就可以回头通过这两个loader给它去读进来。接下来这一部分是相当于是构建一个神经网络,这边大家都知道这个人工智能,目前很多时候都是基于神经网络的,这样的一个人工智能。这块这个Convolutional Neural Network相当于是去创建一个卷积神经网络,相当于是在创建一个卷积神经网络。卷积神经网络往往它比较适合用于这个图像的相关的一些识别,它比较适合用于图像的一些识别。这块我这个红色框里的这一部分相当于就是再去构建一个卷积神经网络,这个地方你如果再往下面去细看,你会发现这里面会有具体的一些神经网络层,比如说这块有卷积层,然后会有归一化,就是会有归一化层,然后会有非线性变化,会有池化。然后接下来再继续去做这个卷积,然后会有非线性变化。然后还有max pooling,这个最大值池化。然后这里面你可以发现会有这个卷积核,这个相当于就是五乘五的卷积核,下面这个也是五乘五的卷积核。然后再往下这边是输出层,这个输出层相当于是一个全连接的,是一个全连接。然后最后这边的num_classes这边写的是十,相当于是要去做一个十分类,相当于做一个十分类为。为什么要去写十?是因为这个数据集有很多同学知道这个数据集,它是一个手写数字识别的这样一个数字集,它事实上就是识别这个零到九这样的数字,比如说一张图像里面,他写了个零,然后把这个零带到我们这个Convolution Neural Network里面去。然后这样,这个神经网络它会来去预测一个结果,比如它要是预测零,那就对了,他要是预测其他的,比如预测一那个错了。就是这样的一个神经网络,它来去做这样的分类的。那这块就是再去定义这个神经网络。然后定义完这个神经网络之后,我们可以把这样神经网络给它放到GPU上面去。然后接着,这块会有optimizer,会有优化器,那这块这个优化器相当于干什么?这个就这块这个优化器是这个随机梯度下降,它相当于是在去优化这个神经网络,就是通过优化器,后来去调整,调整这个神经网络里面的parameter参数,parameter参数。下面这边这块儿是一个loss,是来定义一个损失函数。总之这个事实上就是一些这个训练神经网络,它对应的一些套路,相当于就是我们在这里面去定义这个神经网络上面读这个数据,有数据,有神经网络之后,我们来去定义优化器和损失函数。然后接着我们就把模型切换到一个训练的模式。然后接下来这边,比如说设置两轮,就是训练两个轮次,训练两个轮次,让它把所有的数据学习两遍。接下来这边就是分轮次分批次来去进行一个训练,然后这边相当于是通过Autograd,后来去进行一个优化。这边相当于是把loss反向传播,然后Autograd step它就来去进行一个更新。他来去进行一个参数的更新,然后下面这边去打印一下,这个跑到第几轮了,然后相对应的平均的损失是多少,然后下面打印一个训练的时长是多少。然后训练完了之后,我们可以把模型切换到一个evaluation评估的模式。然后下面这边分批次的来去评估我们的这个测试集这样一个准确率。这样的这个这样的一个Python脚本,相当于就是来去设计一个卷积神经网络,然后来去学习该如何对手写数字识别这样的数据集来去进行一个预测。那这块我把这个脚本现在给它跑起来,就是在我们当前下面这个的窗口里面,我们在这里面输入python,然后这边我们输入MNIST.py,那这个不就是去通过Python执行这个.py脚本吗?来去执行这个Python脚本。我们这里面现在去回车。然后它在训练过程当中,我们这边再通过英伟达nvidia-smi来看一下它对于显卡的占用。大家可以看到它其实你可以看到这里面,它其实这两张显卡,它其实只占用了一张大家看这个位置,大家看这个位置,它其实只是利用了这个零号,这个显卡看到了吗?它只是利用了零号这个显卡,相当于就是我们当前这个机器有两张显卡,它只用了一张显卡,也就是当前这个脚本并没有去分布式的来去训练。那这边同学说老师这个模型这么小吗?对,因为我们这边设计这个神经网络,事实上只有几层,所以这个相当于不会太占这个显存,所以四百多兆这个很正常。然后这边百分之七的一个利用率,因为这个显卡实际上还是3080 Ti,其实也是比较好的这个显卡了,相对来说也是中等水平的这个显卡吧,实际上这里面来去跑这个神经网络,实际上是非常轻松的。我们来看另外这个这边执行完了没有,你看这边是哪儿打印的?是我们刚才这块打印的,这块print打印的,打印的这个两轮里面的第一轮,然后它的平均损失0.84,然后打印第二轮,训练完了之后,平均损失是0.32,然后整个训练的一个时长,12.92秒。最终这边最终这块有个accuracy是哪打印的?是最后这个测试集使用完了之后来去打印的测试集上面的准确率,94.28。今天晚上我们并不是说要把这个神经网络给它调的多好,让这个准确率达到最高。这个不是我们今天晚上的目的,我们今天晚上的目的是来看看分布式训练。这块大家明白吗?实际上你可以看到这个PyTorch实际上还是非常好用的。大家可以看到整个这个脚本,刚才我们看这个脚本,事实上这边77行就已经来去跑了一个神经网络的这样一个训练。然后那这里面其实这边有同学说,其实听的不是很懂,那我给他稍微的写一下注释,那这块儿就是读数据,你要训练模型,肯定需要什么?肯定需要灌给这个灌给这个模型数据。就让它有就是有东西学,就说白了让这个模型有东西去学。然后那下面这一块是来去定义这个神经网络模型,长什么样子?那有数据了,有模型了。那接下来去这个设置,设置一点超参。然后接下来这边,我们在这块儿,相当于就是前面都准备好了之后,那我们就分批次,分轮次分批次的进行训练。训练完了之后,在这个位置下面这一小段就是训练好之后,使用测试集数据对训练之后的模型进行预测评估。那刚才这块分轮次分批次的这个使用训练集数据对模型进行训练。那如果我们非要写上编号,那第一步读数据,第二步定义模型,第三步设置一点超参,然后第四步训练,第五步评估。这个同学刚才说听的不是很懂的,这个同学现在明白了吗?小白同学其实也能看懂吧,不是非常费劲吧。你可以看到这一段代码,事实上就81行实际上就完成了一个神经网络的一个训练。那我们刚才可以看到,在刚才训练的过程当中,我再给同学去强调在刚才训练的过程当中,这是刚才训练过程当中,我来打印的这个显卡的这个使用,那我们这块儿有两张显卡,有两张显卡零号和一号。但是在刚才训练过程当中,其实这里面只使用了一张显卡,它只使用了一张显卡,那也就是说其实这个资源的利用率并不高,资源的利用率并不高。同学说老师,那这个地方是因为我们此时此刻刚才给大家展示的这个数据,还有这个模型就是数据不卡,模型不大。所以刚才这里面一张显卡,事实上就能把它来去进行训练。那反过来说,如果我们的这个数据它变多的情况下,如果这个模型它的体积不是四百多兆。这个模型的体积,比如说是几十个G,那这样的情况下,那往往一张显卡事实上是无法来去进行训练的,那我们可能会需要两张显卡,四张显卡、八张显卡以此类推。所以在这个地方刚才去说了一下,就是在这边刚才训练过程当中,只用了一张显卡,这块大家能听懂吗?
page.sm.cn阿文将带领学习如何快速入门PyTorch 2.0。教程包括环境配置、安装不同版本的PyTorch、讲解神经网络基础,并通过一个鸢尾花识别项目让初学者了解PyTorch的实际应用。阿文还会分享如何自定义数据集加载。
page.sm.cnPyTorch 深度学习:60分钟快速入门 1 张量1.1 PyTorch是什么?pytorch是基于Python的科学计算包,服务于以下两种场景:作为NumPy的替代品,可以使用GPU的强大计算能力提供最大的灵活性和高速的深度...
devpress.csdn.net(二)Autograd(自动求导)Autograd 是 PyTorch 中实现自动求导的模块,它能自动计算张量操作的梯度,这是深度学习中反向传播算法的关键。代码示例:import torch ## 创建一个未初始化的...
m.w3cschool.cn强推!2025最新版PyTorch深度学习快速入门教程(绝对通俗易懂!)深度学习/人工智能/神经网络我是小土堆a
page.sm.cn嘿 hello,大家好,这里是杂兴成学米糖,那就如同标题所见,这里就是开一个星空。关于 PYTO ch 的教学。然后咱们第一章就是简单介绍一下什么是 PYT orch 以及它的安装。其实你能进来来话,最后才得知道你是听说说过 YT orch 的自然也知道它是一个深度学习编程的框架。关于框架,其实无论是早期的机器学习框架 scalen,或者是后来谷歌出的深度学习框架, t unn f low 最最才才到 mameta 所推出的 watch 其实要说起来, TENFOL 的运行效率会更高一点。但是 py touch 相对来说的话,对编程人员友好的多,并且效率其实也没有差,特别多,而且还在不断的提升。所以现在渐渐的成为主流了。所以如果你想接触深度学习,或者是想去学习一下大模型相关的知识,我推荐还是从 py touch 入手。当然了,拍 toch 的东西特别的多。所以这个教程目的主要是带大家入个门,熟悉一下这个框架 OK 你的第一不肯定是说这个 ptoout ch 是怎么安装的那这里就不得不说,安装 ptoch ,这个就一定要从官官网去入手。因为 ptoout 是严格格与与你的系统版本以及驱动版本所对应。那官网中的 get start 底下的 start locally 中午我们可以看到一些选项,我们肯定要选择稳定的 able 版本。它提供了 llinx x 麦和 windows 三个系统统本本安安装方式这面推荐 PIP 语言,这边咱们选择 python。因为后续是想对深度学习或者大模型做一些开发工作。当然你如果要是想把模型就跑到移动端或者是安卓平台,也可以去选择 CI 加或者是 java 的版本。最重要的这个计算平台的部分,一定要注意,一定要注意 creoode 的这两个版本,对应的是你的 GPU 的版本。注意这里面的麦克是只能选择 CPU 版本的那你选完了之后,它就会在下方生成一条命令。然后你就可以把这个命令去粘到你的命令行中去执,就可以进行安装了。 OK 那对应安装,其实还有几个注意点?第一个就是如果你要是没有 GPU ,那你就只能去选择这个 CPU 的版本。那你选择 GPU ,注意它对应有一个 GPU 的版本嘛,那我们就需要去确认我们安装扩大的版本嘛。那其中一种命令行的方式就是在命令行中输入英伟达杠 SMI。那在执行的命令之后,可以显示你当前安装的驱动的版本,以及扩大能够支持的最高的版本。那我这扩大的知持版本是12.3。那这个是意味着你最高可以安装12.3版本的酷大。但是实际上你的安装版本是可以比这个低的而去确认你当前实际安装的酷大版本的命令是 NNVCC 杠大写的。 v 那可以看到我这里安装的是 v 12.3点103。那咱们返回这个拍 touch 这个官网里的发现哎,没有对应这12.3的版本怎么办?我们就去向下兼容,去选那个比它版本,最接的那个那当前就是扩大12.1。那注意这里面,因为它这个东西的版本是严格一一对应的,所以千万别网上随便找一个指令就直接装了,最好是从官网这个里头选择生成了版本。根据你对应的版本所提供的安安装令令进进安安装。那当了如果果你要是前没有去去过这个扩扩版本,那你可能要先装 visuo studio,然后去英伟达的官网下载对应版本的扩的,以及对应版本的 CUDNN 配置环境变量了之后,再进行我们 pay touch 的安装 OK。那咱们安装完了之后,可以根据 input torch 加载 touch 依赖,然后去打印对应的版本,以及当前的扩大版本号和是否开启了哭的。如果酷 dis available 的返回是 true ,证明你安装成功了。那你会发现,虽然在官网中有这个 CPU 的 pay touch 版本。但是如果你要是想去进行深度学习或者是打模型,很多在 GPU 版本中的功能是没法在 CPU 中去实现的。也就意味着你在学习和一些圆满的阅读和调试的时候,其实并不能达到很好的效果。所以建议如果你要是有条件,还是去使用 GPU 比较合适。当然如果你要是觉得麻烦,或者是为了有一个更好的稳定的学习效果,比如自己笔记本电脑的显卡较弱,但是暂时又没有预算。你购买一个新电脑,其实使用云主机去学习,是一个比较不错的选择。那国外,其实谷歌有一个免费的调用国外的模型,其实速度很快。但是因为还是外网,所以连接起来,有时候会很卡,然后国内做的几家,要不然是特别贵的,要不然就是抢不到卡的那正好朋友推荐了我一个叫 open base 的网站。那现在填邀请信息,还可以获得额外的三十小时的4090使用时长,那就特别适合咱们现在这种学配透视的情况 OK 那注册方法也非常简单,你可以点击一下视频简介中的链接。那这样,邀请的双方都会得到三十个小时的4690的使用时长,当然不知道这个活动什么时候结束哈。那当然你也可以邀请一下你的朋友去白嫖儿。这个时长,那怎么创建?我们可以先点击一下左上角的模型训练,然后在下方去创建一个容器容器名称,这块就随便填写。比如说一个 python learning,然后底下去备注注一下,能够识别出来。你这个容器是什么?那接入方式,根据咱们当前的情况,就选择工作空间就可以了。接下来点击下一步之后选择算力。那因为邀请注册了之后,送你三十个小时的4090使用时长,所以这里面可以直接选择4090,可以看我这里面也暂时没有充值。那正好要选择拍 touch ,下面的镜像咱们就直接选择官方的拍 touch。那版本,我这里选的是 poodon 12.1 python 3.1 OK。然后点击下一步审核,那可以确认一下当前的选择情况。那没什么问题,点击执行它就开始去创建对应的使用容器了。那容器创建的过程大约40秒不到1分钟吧,我觉得还挺快。那我们这里面直接打开 juroitter 去访问一下工作空间。当然你也可以后面用 SSH 直接用 VS code 去连接服务。那在 dropeter 中我们去引入一下 pattouch 的依赖,然后去测试一下 GPU 是否可用 OK。那这里面显示处说明这个是可以使用 GPU 的那当你完成了一个练习了之后,你也可以直接点右上角的停止,然后这样计时就会中断了。那根据提示这个杠 home 下的文件会被保留,其他的则会丢失。这里面有不同习惯的同学,需要稍微注意一下。当然关闭之后,咱们再重新点击右上角的启动,就可以重新再打开我们的工作空间了。那重新启动也大概需要1分钟的时间。但是打开了之后,我们可以看到我们之前所保留的这个 jupiter 的文件内容还在那。其实我从个人的角度来说的话,我还是建议你在学习的过程中,尽量去折腾这种云服务器,就是在探索的过程中,少对自己的电脑做一些摧残。因为你可能不知道装什么东西了之后?突然哪天就不能用了,这恢复电脑也是一挺痛苦的过程,更何况后续。如果你要是想做一些深度学习,大概率你的电脑是很难支撑这个任务的。然后云服务器是能够比较方便去扩展。当然如果你有钱土豪就另说了 OK,那咱们第一期到这儿了,这里就是全部的内容了。如果你还有其他想问,可以评论区里留言,或者通过 qq 群又进行交流,让我们一起迎接未来的挑战。
page.sm.cn本教程的目标:深入理解PyTorch张量库和神经网络 训练一个小的神经网络来分类图片这个教程假设你熟悉numpy的基本操作。注意请确保torch和torchvision包已经安装。一、PyTorch 是什么他是一个基于Python的科学计算包,目标用户有两类...
m.blog.csdn.net各位同学好,就是今天,就这门课,主要是介绍一下PyTorch的入门,为什么要录这门课?可能是因为毕竟也用这个框架用了挺长时间的,然后,也是想着给自己记录一下吧。可能未来工作之后会有一段时间不怎么用它了。但是我觉得可能过段时间可能又会用到。然后这门课是一门非常基础的PyTorch入门,就是说它是给那些零基础的人用的。但是这门课不会很长,有时候不会像别的框架一样,教你十几个小时,甚至二十几个小时,它更多的我觉得是一种思想。因为我教课喜欢用比喻嘛,就是说更多的是用一种思想,一种方式来告诉你这个框架大概是在干什么。而至于那些具体的细节,你可以去看一看别的那个别别的课程之类的。它会讲你一些最基础的细节。然后这门课主要是分为六个部分。第一部分就是会简单介绍一下什么是神经网络。第二部分就会介绍一下Tensor,就是张量的基本操作。第三部分就是介绍一个PyTorch的快速开始,就是说有一个基本的框架。然后第四部分就是自定义一个数据集。第五部分是加载模型的权重文件。然后第六部分就是自定义一个损失函数,主要就是这六个部分看完之后大概就会对整个模型有一个初步的理解。首先我们来介绍一下什么是张量。张量是什么东西?张量其实是一个统称的概念。比如说零维,或者说一或者二或三或四维,这个我们叫做零维,就是一个标量,标量就指的是它是一个数字。而如果是一维向量,这个应该学线性代数应该都学过。如果是一个向量,它就是一个一维的,是不是?然后如果是一个矩阵,它就是一个二维的,是不是二维的。然后三维,那可能就是一个空间了,就是三维的空间。那接下来还有四维的,五维的就没有办法表示出来了,就是更高维度一直到n维。也就是说张量是什么东西?张量就是指这些零维、一维、二维、三维一直到n维的一个统称,这些所有的东西都统称为张量,也就是张量中包含了,就是把这些东西全部包含了,就叫做张量就叫做Tensor。包括像LongTensor、FloatTensor、ShortTensor嘛,也是张量。可以看得出来,张量是整个神经网络中最重要的一个数据结构,基本上所有的神经网络都是对张量进行操作的。然后我们接下来看什么是神经网络。神经网络大家肯定也接触过说什么输入一个什么,输出一个什么。其实它的本质就是输入一个张量。经过若干次的变换之后,得到m个新的张量,这就是神经网络本质。所以说神经网络本质上就是对张量的操作。比如说我们输入的是一个向量a等于1234,然后神经网络中的参数P等于5678的转置。那它两个相乘,是不是就是线性代数中矩阵的乘法,就是这个是a,这个是P就等于一个数o,是不是就会等于一个数,就相当于这个和这个相乘,加上这个和这个相乘,加上这个和这个相乘,再加上这个和这个相乘,最终得到一个数就是66。66是什么?66就是一个零维的标量,零维标量也是一个张量。那输入是什么?输入是零维,输入是一个一维的向量,基本现在也是张量。那假如说我们的标签值是77,那么它的损失值就是66减77,它的损失值是-11。那我们当然是希望这个损失值越小越好,所以说我们就要经过梯度下降算法,然后对这个P里面的数字进行更新。当这个P里面的5678可能变成另外一个数字之后,它就会更加接近77这个值,这就是梯度下降以及参数的更新。这就是神经网络本质就是对张量的操作。那我们再来看一个分类网络。分类网络输入什么?分类网络输入是一个三维张量,就是三维的那个空间嘛,然后得到一个一维的张量。一维张量是什么?分别代表的是这张图片的高宽和它的通道数。如果是彩色图片,那它通道数就是三;如果是灰度图片,那它通道数就是一。通过输入这么一个三维的张量,经过若干次的变换,得到一个一维的向量,这就是分类网络。那这个向量代表什么意思?比如说我们做一个三分类,那么输出就是一个一维向量。那这个一维向量代表什么?比如说它输出的是0.9、0.2、0.08这三个值。那假如说第一个值代表是猫,第二个值代表的是狗。第三个值代表是人,那它预测猫的概率就是0.9,预测狗的概率是0.02,预测人的概率是0.08。那么最后它输出结果就是猫,就是说这张图片是一个猫。那么同理嘛这个也是一样的。当它输出是0.07、0.9、0.03的时候,那它输出的概率就是狗,因为它的概率是最大的,这是分类网络。那分割网络和目标检测网络,这边我就不详细介绍了,我直接告诉你,就是说它输入的也是一个三维张量,输入一张图片,输出的是一个二维张量。它跟分类网络不一样,分类网络输出的是一个向量,就是一维张量。而分割网络它输出是一个三维张量,它也是通过一个参数变换得来的。这边我就不具体展开了,因为这样讲的话就太太多了,不符合这个视频的那个原则。这就是分类网络和分割网络。然后我们接下来再看一个图片吧。这个图片它是一个输入,输入是一个3乘3的一个矩阵,那就是一个二维张量。然后经过这个P,就是神经网络中的参数,经过这个P也是一个二维张量,它们俩矩阵相乘,矩阵相乘就会得到一个output,得到一个output,它输出是一个二维张量。然后这个二维张量和这个标签值进行计算就会得到一个损失值,这个叫做loss。然后通过这个loss对这个P进行求导,对P进行求导得到了,就是它的梯度值,比如说负一、二、负四,就是这种梯度值。然后,再把这个梯度值在这边,这个梯度值和这个参数值相减,就会得到一个新的参数,然后再重复用新的参数,再乘以它再算。然后再接下来步骤就是一模一样的。这就是神经网络的一个训练步骤,它分为了前向传播得到输出,就是第一行前向传播得到输出,然后计算损失值就是第二行计算损失值,然后进行反向传播。就是求导,然后更新参数就是第三步更新参数。整个神经网络就分了四步:前向传播、计算损失值、反向传播、更新参数。然后比如说这个网络有很多层,所谓的什么卷积层、BatchNorm层或者是什么激活函数,其实本质上就是一层一层前面堆嘛,它只有一层嘛,只堆了一个,那我再多堆几个不就好了嘛。比如说这个是卷积层,这个是什么?BatchNorm层。然后到最后就会得到一个输出,这就是神经网络本质。所以说它说白了就是在更新这个前面的参数,这就是神经网络。归根到底,我讲这么多,就是想告诉你张量的重要性,张量是非常非常重要的。也就是说整个神经网络说白了就是在对张量进行操作,这就是神经网络。
page.sm.cn1.PyTorch 深度学习:60分钟快速入门(官网翻译)“ PyTorch 深度学习:60分钟快速入门 ”为 PyTorch 官网教程,网上已经...
m.blog.csdn.netPyTorch的 torch.nn 包提供了构建神经网络的工具。一个神经网络通常由多个层组成,如卷积层、池化层、全连接层等。你只需定义网络的前向传播过程,autograd会自动处理反向传播。二、快速入门步骤2.1 安装PyTorch首先,你需要安装...
m.blog.csdn.net