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

山西电力建设三公司网站维护网站成本

山西电力建设三公司网站,维护网站成本,北京装饰公司报价,中国采招网官方网站CNN中的池化层 首先#xff0c;池化#xff08;pooling#xff09;层的提出是为了缓解卷积层对位置的过度敏感性。 什么意思#xff1f; 比如在图像边缘检测问题中#xff0c;实际图像里#xff0c;我们的目标物体不会总出现在固定位置#xff0c;即使我们连续拍摄同…CNN中的池化层 首先池化pooling层的提出是为了缓解卷积层对位置的过度敏感性。 什么意思 比如在图像边缘检测问题中实际图像里我们的目标物体不会总出现在固定位置即使我们连续拍摄同一个物体也极有可能出现像素位置上的偏移。这会导致同一个边缘对应的输出可能出现在卷积输出的边缘的不同位置从而对模式识别造成影响。 与卷积层类似池化层每次也是对输入数据的一个固定窗口内的元素计算输出 但是池化层不同于卷积层它不考虑输入与核的互相关性池化层直接计算池化窗口内数据的最大值或平均值这分别对应与最大池化与平均池化。 对于二维最大池化池化窗口从输入数组的最左上方开始按从左往右、从上往下的顺序依次在输入数组上滑动。当池化窗口滑动到某一位置时窗口中的输入子数组的最大值即输出数组中相应位置的元素。 [012345678]∗[2∗2最大池化层][4578]\begin{bmatrix} 012 \\ 345 \\ 678 \end{bmatrix} * \begin{bmatrix} 2*2 \\ 最大池化层 \end{bmatrix} \begin{bmatrix} 45 \\ 78 \end{bmatrix} ⎣⎡​036​147​258​⎦⎤​∗[2∗2最大池化层​][47​58​] 由 max⁡(0,1,3,4)4,max⁡(1,2,4,5)5,max⁡(3,4,6,7)7,max⁡(4,5,7,8)8.\max(0,1,3,4)4,\\ \max(1,2,4,5)5,\\ \max(3,4,6,7)7,\\ \max(4,5,7,8)8. max(0,1,3,4)4,max(1,2,4,5)5,max(3,4,6,7)7,max(4,5,7,8)8. · 构造一个实现最大池化和平均池化的层 import torch from torch import nndef pool2d(X, pool_size, modemax):X X.float()p_h, p_w pool_sizeY torch.zeros(X.shape[0] - p_h 1, X.shape[1] - p_w 1)for i in range(Y.shape[0]):for j in range(Y.shape[1]):if mode max:Y[i, j] X[i: i p_h, j: j p_w].max()elif mode avg:Y[i, j] X[i: i p_h, j: j p_w].mean() return Y对于物体边缘检测的例子 检测图像中物体的边缘即找到像素变化的位置。首先我们构造一张6×86×8的图像即高和宽分别为6像素和8像素的图像。它中间4列为黑0其余为白1。 X torch.ones(6, 8) X[:, 2:6] 0 Xtensor([[1., 1., 0., 0., 0., 0., 1., 1.],[1., 1., 0., 0., 0., 0., 1., 1.],[1., 1., 0., 0., 0., 0., 1., 1.],[1., 1., 0., 0., 0., 0., 1., 1.],[1., 1., 0., 0., 0., 0., 1., 1.],[1., 1., 0., 0., 0., 0., 1., 1.]])然后我们构造一个高和宽分别为1和2的卷积核K。当它与输入做互相关运算时如果横向相邻元素相同输出为0否则输出为非0。 K torch.tensor([[1, -1]])下面将输入X和我们设计的卷积核K做互相关运算。可以看出我们将从白到黑的边缘和从黑到白的边缘分别检测成了1和-1。其余部分的输出全是0。 def corr2d(X, K): h, w K.shapeY torch.zeros((X.shape[0] - h 1, X.shape[1] - w 1))for i in range(Y.shape[0]):for j in range(Y.shape[1]):Y[i, j] (X[i: i h, j: j w] * K).sum()return Y Y corr2d(X, K) print(Y)tensor([[ 0., 1., 0., 0., 0., -1., 0.],[ 0., 1., 0., 0., 0., -1., 0.],[ 0., 1., 0., 0., 0., -1., 0.],[ 0., 1., 0., 0., 0., -1., 0.],[ 0., 1., 0., 0., 0., -1., 0.],[ 0., 1., 0., 0., 0., -1., 0.]])现在我们将卷积层的输出作为2×2平均池化层的输入。设该卷积层输入是X、池化层输出为Y。 无论是X[i, j]和X[i, j1]值不同还是X[i, j1]和X[i, j2]不同池化层输出均有Y[i, j]不等于0。也就是说使用2×2平均池化层时只要卷积层识别的模式在高和宽上移动不超过一个元素我们依然可以将它检测出来。 池化层的填充和步幅 同卷积层一样池化层也可以在输入的高和宽两侧的填充并调整窗口的移动步幅来改变输出形状。 先构造一个形状为(1, 1, 4, 4)的输入数据前两个维度分别是批量和通道。 X torch.arange(16, dtypetorch.float).view((1, 1, 4, 4)) print(X)tensor([[[[ 0., 1., 2., 3.],[ 4., 5., 6., 7.],[ 8., 9., 10., 11.],[12., 13., 14., 15.]]]])默认情况下MaxPool2d实例里步幅和池化窗口形状相同。下面使用形状为(3, 3)的池化窗口默认获得形状为(3, 3)的步幅。 pool2d nn.MaxPool2d(3) pool2d(X) 输出为 [0123456789101112131415]∗[3∗3最大池化层][10]\begin{bmatrix} 0123 \\ 4567 \\ 891011 \\ 12131415 \end{bmatrix} * \begin{bmatrix} 3*3 \\ 最大池化层 \end{bmatrix} \begin{bmatrix} 10 \end{bmatrix} ⎣⎢⎢⎡​04812​15913​261014​371115​⎦⎥⎥⎤​∗[3∗3最大池化层​][10​] 至于输出为什么是[10]根据之前的blog中讲过的卷积层的输入输出公式 output⌊(nh−khphsh)/sh⌋×⌊(nw−kwpwsw)/sw⌋⌊(4−30×23)/3⌋×⌊(4−30×23)/3⌋1×1output \lfloor(n_h-k_hp_hs_h)/s_h\rfloor \times \lfloor(n_w-k_wp_ws_w)/s_w\rfloor \\ \lfloor(4-30\times23)/3\rfloor \times \lfloor(4-30\times23)/3\rfloor 1 \times 1 output⌊(nh​−kh​ph​sh​)/sh​⌋×⌊(nw​−kw​pw​sw​)/sw​⌋⌊(4−30×23)/3⌋×⌊(4−30×23)/3⌋1×1 得出输出维度为1*1 如果手动指定步幅和填充 pool2d nn.MaxPool2d(3, padding1, stride2) pool2d(X)output⌊(nh−khphsh)/sh⌋×⌊(nw−kwpwsw)/sw⌋⌊(4−31×22)/2⌋×⌊(4−31×22)/2⌋2×2output \lfloor(n_h-k_hp_hs_h)/s_h\rfloor \times \lfloor(n_w-k_wp_ws_w)/s_w\rfloor \\ \lfloor(4-31\times22)/2\rfloor \times \lfloor(4-31\times22)/2\rfloor 2 \times 2 output⌊(nh​−kh​ph​sh​)/sh​⌋×⌊(nw​−kw​pw​sw​)/sw​⌋⌊(4−31×22)/2⌋×⌊(4−31×22)/2⌋2×2 tensor([[[[ 5., 7.],[13., 15.]]]])指定非正矩形的窗口 pool2d nn.MaxPool2d((2, 4), padding(1, 2), stride(2, 3)) pool2d(X)output⌊(nh−khphsh)/sh⌋×⌊(nw−kwpwsw)/sw⌋⌊(4−21×22)/2⌋×⌊(4−42×23)/3⌋3×2output \lfloor(n_h-k_hp_hs_h)/s_h\rfloor \times \lfloor(n_w-k_wp_ws_w)/s_w\rfloor \\ \lfloor(4-21\times22)/2\rfloor \times \lfloor(4-42\times23)/3\rfloor 3 \times 2 output⌊(nh​−kh​ph​sh​)/sh​⌋×⌊(nw​−kw​pw​sw​)/sw​⌋⌊(4−21×22)/2⌋×⌊(4−42×23)/3⌋3×2 输出为 [000000000001230000456700008910110000121314150000000000]∗[2∗4最大池化层][139111315]\begin{bmatrix} 00000000\\ 00012300 \\ 00456700 \\ 0089101100 \\ 001213141500\\ 00000000 \end{bmatrix} * \begin{bmatrix} 2*4 \\ 最大池化层 \end{bmatrix} \begin{bmatrix} 13\\ 911\\ 1315\\ \end{bmatrix} ⎣⎢⎢⎢⎢⎢⎢⎡​000000​000000​0048120​0159130​02610140​03711150​000000​000000​⎦⎥⎥⎥⎥⎥⎥⎤​∗[2∗4最大池化层​]⎣⎡​1913​31115​⎦⎤​ 池化层中的多通道 在处理多通道输入数据时池化层对每个输入通道分别池化而不是像卷积层那样将各通道的输入按通道相加。这意味着池化层的输出通道数与输入通道数相等。 例如 X torch.cat((X, X 1), dim1) print(X)输出 tensor([[[[ 0., 1., 2., 3.],[ 4., 5., 6., 7.],[ 8., 9., 10., 11.],[12., 13., 14., 15.]],[[ 1., 2., 3., 4.],[ 5., 6., 7., 8.],[ 9., 10., 11., 12.],[13., 14., 15., 16.]]]])pool2d nn.MaxPool2d(3, padding1, stride2) pool2d(X)输出通道数仍然是2 tensor([[[[ 5., 7.],[13., 15.]],[[ 6., 8.],[14., 16.]]]])
http://www.huolong8.cn/news/292996/

相关文章:

  • 南京网站设计的公司如何推广
  • 重庆网站建设哪家好wordpress建手机版6
  • iis发布网站乱码广告设计公司深圳品牌设计公司
  • 删除百度收录网站网站部署环境
  • 网站怎么做网站地图外贸网站建设的败笔
  • 广州敏城建设工程有限公司网站搜索引擎内部优化
  • 为什么一个人做网站有难度成都网上注册公司流程
  • 沈阳中讯国际网站建设2022年最火的新闻摘抄
  • wordpress 站群注意c 网站开发模式
  • 自己如何做链接推广南昌做seo的公司有哪些
  • 如何运行asp.net网站中企动力电话号码
  • 网站建设最新模板承德建设网站
  • 免费流量网站推广wordpress地址更换
  • 常见的网站首页布局网站平台规划方案
  • 什么网站可以查建筑工程项目做哪个网站最简单
  • 哪个网站可以做纸箱室内设计师招聘网站
  • 网页首页设计模板图片360优化大师历史版本
  • 青岛网站建设找润商做查询网站费用
  • 养老院为什么要建设网站张家港网站 设计制作
  • 贸易公司做推广的网站网站停留时间 从哪里获取
  • 成都网站建站推广菏泽去哪了做网站
  • dw怎么做网站跳转织梦网站怎样上传到ftp
  • 响应式网站设计与实现论文农业电商网站有哪些
  • 枣阳做网站wordpress百家号
  • 计算机技术员网站建设怎么提交网站到百度
  • 网站数据库安装教程c 做网站设计
  • 电子商务网站推广怎么做网站后台安全性
  • 建设电商网站的个人心得编程入门教程网
  • 四川省建设人才网站小企业网站建设哪找
  • 做网站备负责人风险大吗新闻发布会邀请哪些媒体