pytorch深度学习50篇·······第一篇:认识深度学习

咕里个咚 咕里个咚     2022-12-17     721

关键词:

上一篇文章已经交给大家深度学习中的卷积是如何卷的,我的总结就是对应位置相乘在相加,最后加上bias。如果说怎么卷是小学三年级的知识,那我们今天就来说点小学六年级的知识,今天主要还是对上次那个动图做一下进一步的讲解,要说的几个深度学习中经常听到的英文单词,它们分别是:stride,padding,kernel,feature map,上动图

1.stride 

stride直译过来就是步伐,也就是卷积核移动的步伐,常见的stride一般都是1,2这样的步伐,老人们常说步子迈大了,会摔跟头,我说步子迈大了,裤裆会发愁。

动图第一帧,卷积核的位置就在这里

动图第二帧

明显的可以看到,卷积核向右移动了两个格子,所以stride=2,这么说应该没问题了吧

再来看一帧

卷积核横着跑完之后,他又竖着跑了,和第一帧相比,它向下移动了两个格子,所以stride=2。

没办法,就是这么严谨。stride大概就是这样的了

2.padding

padding直译过来就是填充的意思,你可能要问了,填充干什么,填充的哪里啊,填什么东西啊。

其实就是在图片的上下左右各补上一圈0,如下图

外面灰色的那一圈就是padding上的0,中间蓝色的部分就相当于是图片的,也就是说图片大小是5*5的,padding之后的大小就是7*7,但是这个时候padding=1,一定不要以为padding=2.

我对padding的理解就是,填充是为了保证图片的边缘也能够和中间部分一样,可以被卷积多次,如果不padding的话,中间信息卷积的次数就多了,就不公平了,这是个人人平等的社会,图像也是平等的,其次padding还能够保持feature map的尺寸,我现在这么说,你可能还不懂什么意思,没关系,我等会讲到后面我会回来说这个feature map的事

3.kernel

 kernel直译过来就是卷积核的意思,反应在图上就是下图

Filter W0是一个kernel, Filter W1也是一个kernel, 所以这个卷积过程中有2个卷积核,卷积核的个数就是2,个数有了,我们还要明确卷积核的大小,图上也写的很清楚了,是3*3*3,也就是说一个kernel有3个3*3的矩阵

不知道你有没有疑问,为什么要3个3*3的矩阵,为什么不能是4个或者5个3*3的矩阵,几个矩阵这个事啊,还要看图片的维度,我们可以从图片上看到,图片的维度是7*7*3(padding之后),也就是说,图片有几个通道,kernel就要有几个矩阵,因为我们输入的图片是3个通道的,所以kernel才有3个矩阵。但是你别把这个矩阵的个数和卷积核的个数搞混了,在我们这个动图中,卷积核的个数是2(W0和W1),每个卷积核有3个3*3的举证,为什么有3个,是因为图片是3通道的。解释清楚了吧,千万别混淆了。

我们经常说这次卷积,用到的卷积核的维度是3*3*3*2,这个也是这次卷积的参数量。

4.feature map

feature map的直译过来就是特征图的意思,我们一般说特征图的时候会说,这个特征图的长是多少,宽是多少,通道数是多少。以上图为例,最后的那个output volume为例,我们就可以称之为一个feature map,它的长就是3,宽就是3,通道数就是2(有几个矩阵,通道数就是几),所以我们说这个feature map的维度就是3*3*2,上图

 

,相当于图片在卷积之后,图片有7*7*3变成了3*3*2,明显变小了,为什么会变小,就是因为卷积的原因,它的padding和stride造成的,其实有个公式可以直接计算:

代表生成的feature map的宽,w代表图片的宽(padding之前),k代表kernel的大小,p代表padding数,,s代表stride

根据上图 w = 5 , k=3, p=1 , s=2,所以新的feature map的宽=((5-3+2)/2)+1 = 3

验算正确,记住公式即可

那新的feature map的高又怎么算呢,方法跟你上面其实是一样的,还是写一下吧

是新的feature map的高,h是原图的高(padding之前),计算同上,可以自己试一试

刚刚也说了output volume的维度是3*3*2,那这个2是哪来的,这个2啊,就是kernel的个数,不用就计算了。

5.总结

这次卷积相当于用3*3*3*2的卷积核,在padding=1,stride=2的情况下,把5*5*3的图片变成3*3*2的feature map。

我觉得已经说的很通俗易懂,王婆卖瓜,自卖自夸。

OK,认识深度学习到这里就差不多可以了,接下里我会演示一个深度学习相关的示例,先演示效果再来,一步步教学,这是我之后的方针。

值得一提的事,昨天,就在昨天,我的上一篇文章登上了csdn人工智能榜的第22名,给我高兴坏了,真的是高兴惨了,哈哈哈,之前还去网上查了一下怎么让自己的文章红起来,然后看到一句话,我与大家共勉,那就是:

仰望星空,脚踏实地。

22名的截图献上

 

至此,敬礼,salute!!!!!

 

pytorch深度学习50篇·······第二篇:人脸识别

人脸识别预告!!!!!!!!各位亲爱的朋友们,今天这篇文章只是一个预告,为人脸识别做一点铺垫,包括提供需要安装的包和两个权重文件。这次我们人脸识别之旅分为两个阶段... 查看详情

第一篇如何选择深度学习主机

...善其事,必先利其器”。对于我们来说,如果我们想学好深度学习,一台配置好的主机必不可少。那么如何选着主机的配置呢?今天我就通过这篇文章和大家梳理一下。说到主机的配置,对于学习深度学习的人来说最重要的配件... 查看详情

pytorch深度学习50篇·······第三篇:非监督学习(代码片段)

兄弟萌,我咕里个咚今天又杀回来了,有几天时间可以不用驻场了,喜大普奔,终于可以在有网的地方码代码了,最近驻场也是又热又心累啊,抓紧这几天,再更新一点的新东西。今天主要讲一下非监... 查看详情

csdn独家|全网首发|pytorch深度学习·理论篇(2023版)目录

很高兴和大家在这里分享我的最新专栏 Pytorch深度学习·理论篇(2023版),恭喜本博客浏览量达到两百万,CSDN内容合伙人,CSDN人工智能领域实力新星~0Pytorch深度学习·理论篇+实战篇(2023版)大纲1Pytorch深度学习·理论篇... 查看详情

(机器学习深度学习常用库框架|pytorch篇)第一节:pytorch简介和其核心概念(代码片段)

文章目录一:什么是Pytorch二:Pytorch优势三:Pytorch三大核心概念(1)tensor(张量)(2)autograd(自动微分-变量)(3)nn.Module(神经网络)四:tensor和机器学习、深度... 查看详情

基于深度学习的语义分割初探fcn以及pytorch代码实现(代码片段)

基于深度学习的语义分割初探FCN以及pytorch代码实现FCN论文论文地址:https://arxiv.org/abs/1411.4038FCN是基于深度学习方法的第一篇关于语义分割的开山之作,虽然这篇文章的分割结果现在看起来并不是目前最好的,但其意... 查看详情

pytorch深度学习50篇·······第五篇:yolo-----yolov3v4v5的模型结构(代码片段)

第四篇,我们已经简单的过了一个segmentation网络,下面我们要进入一个相对要复杂一点的系列了,它也是用于目标检测的,与segmentation不同的是,这个网络会回归出目标的位置和大小。YOLO的全程是YouOnlyLookOnce&... 查看详情

pytorch深度学习60分钟闪电战(代码片段)

https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html官方推荐的一篇教程Tensors#Constructa5x3matrix,uninitialized:x=torch.empty(5,3)#Constructarandomlyinitializedmatrix:x=torch.rand(5,3)#Constru 查看详情

pytorch深度学习50篇·······第七篇:gan生成对抗网络---pix2pix(代码片段)

可能看过看过我上两篇GAN和CGAN的朋友们都认为,mnist数据太简单了,也不太适合拿出去show,所以我们来一个复杂一点的,这次难度比之前两篇的难度又有所提升了,所以,请大家不要慌张,紧跟脚步&#x... 查看详情

pytorch深度学习50篇·······第五篇:yolo-----数据标签的准备(代码片段)

兄弟们,朋友们,为期两周的驻场生活结束了,没准说不定啥时候有要去,所以抓紧把YOLO篇搞定,驻场可是太累了,早6晚9,这和早9晚6可是一个天上一个地下啊,好了,废话不多说,今天... 查看详情

(机器学习深度学习常用库框架|pytorch篇)第三节:pytorch之torchvision详解(代码片段)

文章目录一:torchvision概述二:torchvision.datasets(1)官方数据集(2)自定义数据集类(3)ImageFolder手动实现三:torchvision.transforms四:torchvision.models一: 查看详情

pytorch深度学习50篇·······第五篇:yolo-----训练篇(代码片段)

一周过去了,我赶在一周的尾巴上来继续写文章了,上周不算忙,至少不用去驻场了,日子好过多了。不过苦了小兄弟们了,他们去驻场了。来这个现在这个公司快两年了,大概是今年5月份开始,我们... 查看详情

20170525第一篇笔记学习方法

查看详情

一篇学习笔记(代码片段)

...现的这篇文章,此笔记并不能帮到你。对不起qwq安装pytorch在Pytorch下载页面有很多种安装方式。安装pytorch可以通过conda的方式安装,不过我安装不上去,我选择了pip安装。不过这里依旧记录一下换源方法。1.conda方式因... 查看详情

深度学习系列50:苹果m1芯片加速pytorch(代码片段)

1.介绍Apple的MetalPerformanceShaders(MPS)作为PyTorch的后端来加速GPU训练。MPS后端扩展了PyTorch框架,提供了在Mac上设置和运行操作的脚本和功能。MPS通过针对每个MetalGPU系列的独特特性进行微调的内核来优化计算性能。新... 查看详情

小白入门深度学习|第一篇:配置深度学习环境

文章目录一、配置Python3环境二、安装CPU版本的tf2环境三、安装jupyternotebook四、安装GPU版本tf2环境1.找到显卡对应的CUDA2.下载相应的CUDA3.下载相应的cudnn4.添加环境变量5.安装tensorflow-gpu一、配置Python3环境这里推荐去Python官网下载安... 查看详情

pytorch深度学习项目实战100例——基于lenet5实现交通标志分类任务|第50例

前言大家好,我是阿光。本专栏整理了《PyTorch深度学习项目实战100例》,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。正在更新中~✨ 查看详情

第一篇博客

测试一下 https://www.cnblogs.com/fswhq/p/springboot_html.html看到的3d图片旋转效果 .wrapwidth:100px;height:100px;margin:150px;position:relative.cubewidth:50px;height:50px;margin:0auto.cubedivposition 查看详情