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

苗木 网站模板临沂做网站的

苗木 网站模板,临沂做网站的,产品宣传图册,wordpress json 登陆卷积神经网络中的填充(padding)和步幅(stride) 之前写过一篇blog#xff0c;描述CNN网络层的输入和输入尺寸的计算关系#xff0c;但是并没有描述的很全面#xff0c;这里全面描述了影响输出尺寸的两个超参数padding和stride#xff0c;查阅了相关资料#xff0c;编码理解…卷积神经网络中的填充(padding)和步幅(stride) 之前写过一篇blog描述CNN网络层的输入和输入尺寸的计算关系但是并没有描述的很全面这里全面描述了影响输出尺寸的两个超参数padding和stride查阅了相关资料编码理解了pytorch中CNN网络的输入输出关系。 对于CNN网络一般来说假设输入形状是nh×nwn_h\times n_wnh​×nw​卷积核窗口形状是kh×kwk_h\times k_wkh​×kw​那么输出形状将会是 (nh−kh1)×(nw−kw1).(n_h-k_h1) \times (n_w-k_w1).(nh​−kh​1)×(nw​−kw​1). 所以卷积层的输出形状由输入形状和卷积核窗口形状决定。卷积层还有两个超参数即填充和步幅。它们可以对给定形状的输入和卷积核改变输出形状。 填充(padding) 填充padding是指在输入高和宽的两侧填充元素通常是0元素。 对于输入 input[012345678]input \begin{bmatrix} 0 1 2 \\ 3 4 5 \\ 6 7 8 \end{bmatrix}input⎣⎡​036​147​258​⎦⎤​ 我们在原输入高和宽的两侧分别添加了值为0的元素使得输入高和宽从3变成了5并导致输出高和宽由2增加到4 [012345678]→[0000000120034500678000000]\begin{bmatrix} 0 1 2 \\ 3 4 5 \\ 6 7 8 \end{bmatrix} \rightarrow \begin{bmatrix} 0 0000\\ 00120 \\ 03450\\06780\\00000\end{bmatrix} ⎣⎡​036​147​258​⎦⎤​→⎣⎢⎢⎢⎢⎡​00000​00360​01470​02580​00000​⎦⎥⎥⎥⎥⎤​ 一般来说如果在高的两侧一共填充php_hph​行在宽的两侧一共填充pwp_wpw​列那么输出形状将会是 (nh−khph1)×(nw−kwpw1),(n_h-k_hp_h1)\times(n_w-k_wp_w1),(nh​−kh​ph​1)×(nw​−kw​pw​1), 也就是说输出的高和宽会分别增加php_hph​和pwp_wpw​。 [0000000120034500678000000]∗[0123][03849192510213743166780]\begin{bmatrix} 0 0000\\ 00120 \\ 03450\\06780\\00000\end{bmatrix} * \begin{bmatrix} 01\\23 \end{bmatrix} \begin{bmatrix} 0384\\9 19 25 10\\21 37 43 16\\6 7 8 0 \end{bmatrix}⎣⎢⎢⎢⎢⎡​00000​00360​01470​02580​00000​⎦⎥⎥⎥⎥⎤​∗[02​13​]⎣⎢⎢⎡​09216​319377​825438​410160​⎦⎥⎥⎤​ 在很多情况下我们会设置 phkh−1pwkw−1p_hk_h-1 \\ p_wk_w-1ph​kh​−1pw​kw​−1 来使输入和输出具有相同的高和宽。这样会方便在构造网络时推测每个层的输出形状。假设这里khk_hkh​是奇数我们会在高的两侧分别填充ph/2p_h/2ph​/2行。如果khk_hkh​是偶数一种可能是在输入的顶端一侧填充⌈ph/2⌉\lceil p_h/2\rceil⌈ph​/2⌉行而在底端一侧填充⌊ph/2⌋\lfloor p_h/2\rfloor⌊ph​/2⌋行。在宽的两侧填充同理。 卷积神经网络经常使用奇数高宽的卷积核如1、3、5和7所以两端上的填充个数相等。对任意的二维数组X设它的第i行第j列的元素为X[i,j]。当两端上的填充个数相等并使输入和输出具有相同的高和宽时我们就知道输出Y[i,j]是由输入以X[i,j]为中心的窗口同卷积核进行互相关计算得到的。 下面的我们创建一个高和宽为3的二维卷积层然后设输入高和宽两侧的填充数分别为1。给定一个高和宽为8的输入我们发现输出的高和宽也是8。 import torch from torch import nn# 定义一个函数来计算卷积层。它对输入和输出做相应的升维和降维 def comp_conv2d(conv2d, X):X X.view((1, 1) X.shape)# (1, 1)代表批量大小和通道数,均为1Y conv2d(X)return Y.view(Y.shape[2:]) # 排除不关心的前两维批量和通道# 注意这里是两侧分别填充1行或列所以在两侧一共填充2行或列 conv2d nn.Conv2d(in_channels1, out_channels1, kernel_size3, padding1)X torch.rand(8, 8) comp_conv2d(conv2d, X).shape输出 torch.Size([8, 8])当卷积核的高和宽不同时可以通过设置高和宽上不同的填充数使输出和输入具有相同的高和宽。 # 使用高为5、宽为3的卷积核。在高和宽两侧的填充数分别为2和1 conv2d nn.Conv2d(in_channels1, out_channels1, kernel_size(5, 3), padding(2, 1)) comp_conv2d(conv2d, X).shape输出不变 步幅(stride) 卷积窗口从输入数组的最左上方开始按从左往右、从上往下的顺序依次在输入数组上滑动。我们将每次滑动的行数和列数称为步幅stride。 目前我们看到的例子里在高和宽两个方向上步幅均为1, 我们也可以使用更大的步幅。 在下面的问题中 在高上步幅为3、在宽上步幅为2。可以看到输出第一列第二个元素时卷积窗口向下滑动了3行而在输出第一行第二个元素时卷积窗口向右滑动了2列。当卷积窗口在输入上再向右滑动2列时由于输入元素无法填满窗口无结果输出。 [0000000120034500678000000]∗[0123][[0123]∗[0000][0123]∗[0012][0123]∗[0600][0123]∗[7700]][0868]\begin{bmatrix} 0 0000\\ 00120 \\ 03450\\06780\\00000\end{bmatrix} * \begin{bmatrix} 01\\23 \end{bmatrix} \begin{bmatrix} {\begin{bmatrix} 01\\23 \end{bmatrix}* \begin{bmatrix} 00\\00 \end{bmatrix} \quad \begin{bmatrix} 01\\23 \end{bmatrix}* \begin{bmatrix} 00\\12 \end{bmatrix}}\\ \\ \\ {\begin{bmatrix} 01\\23 \end{bmatrix}* \begin{bmatrix} 06\\00 \end{bmatrix} \quad \begin{bmatrix} 01\\23 \end{bmatrix}* \begin{bmatrix} 77\\00 \end{bmatrix}} \end{bmatrix} \begin{bmatrix} 08 \\ 68\end{bmatrix}⎣⎢⎢⎢⎢⎡​00000​00360​01470​02580​00000​⎦⎥⎥⎥⎥⎤​∗[02​13​]⎣⎢⎢⎢⎢⎢⎢⎡​[02​13​]∗[00​00​][02​13​]∗[01​02​][02​13​]∗[00​60​][02​13​]∗[70​70​]​⎦⎥⎥⎥⎥⎥⎥⎤​[06​88​] 一般来说当高上步幅为shs_hsh​宽上步幅为sws_wsw​时输出形状为 ⌊(nh−khphsh)/sh⌋×⌊(nw−kwpwsw)/sw⌋.\lfloor(n_h-k_hp_hs_h)/s_h\rfloor \times \lfloor(n_w-k_wp_ws_w)/s_w\rfloor.⌊(nh​−kh​ph​sh​)/sh​⌋×⌊(nw​−kw​pw​sw​)/sw​⌋. 如果设置 phkh−1pwkw−1p_hk_h-1\\p_wk_w-1ph​kh​−1pw​kw​−1 那么输出形状将简化为 ⌊(nhsh−1)/sh⌋×⌊(nwsw−1)/sw⌋\lfloor(n_hs_h-1)/s_h\rfloor \times \lfloor(n_ws_w-1)/s_w\rfloor⌊(nh​sh​−1)/sh​⌋×⌊(nw​sw​−1)/sw​⌋ 更进一步如果输入的高和宽能分别被高和宽上的步幅整除那么输出形状将是 (nh/sh)×(nw/sw)(因为上式中是向下取整)(n_h/s_h) \times (n_w/s_w) (因为上式中是向下取整)(nh​/sh​)×(nw​/sw​)(因为上式中是向下取整) · · 我们令高和宽上的步幅均为2从而使输出的高和宽减半。 conv2d nn.Conv2d(1, 1, kernel_size3, padding1, stride2) comp_conv2d(conv2d, X).shape输出 torch.Size([4, 4])代入公式这里应该这么算 ⌊(nh−khphsh)/sh⌋×⌊(nw−kwpwsw)/sw⌋⌊(8−31×22)/2⌋×⌊(8−31×22)/2⌋4×4\lfloor(n_h-k_hp_hs_h)/s_h\rfloor \times \lfloor(n_w-k_wp_ws_w)/s_w\rfloor \\\lfloor(8-31\times22)/2\rfloor \times \lfloor(8-31\times22)/2\rfloor 4 \times 4⌊(nh​−kh​ph​sh​)/sh​⌋×⌊(nw​−kw​pw​sw​)/sw​⌋⌊(8−31×22)/2⌋×⌊(8−31×22)/2⌋4×4 再算一个稍微复杂点的 conv2d nn.Conv2d(1, 1, kernel_size(3, 5), padding(0, 1), stride(3, 4)) comp_conv2d(conv2d, X).shape输出 torch.Size([2, 2])代入公式这里应该这么算 ⌊(nh−khphsh)/sh⌋×⌊(nw−kwpwsw)/sw⌋⌊(8−30×23)/3⌋×⌊(8−51×24)/4⌋2×2\lfloor(n_h-k_hp_hs_h)/s_h\rfloor \times \lfloor(n_w-k_wp_ws_w)/s_w\rfloor \\\lfloor(8-30\times23)/3\rfloor \times \lfloor(8-51\times24)/4\rfloor 2 \times 2⌊(nh​−kh​ph​sh​)/sh​⌋×⌊(nw​−kw​pw​sw​)/sw​⌋⌊(8−30×23)/3⌋×⌊(8−51×24)/4⌋2×2
http://www.huolong8.cn/news/368726/

相关文章:

  • 华为网站建设的目标是否明确三种WordPress引流方法
  • 设计网站推荐素材网站嘉定网站设计制作优化排名
  • 常见cms网站源码下载WordPress的好处
  • 做平面设计在什么网站能挣钱做网站图片的大小
  • 免费网站现在是怎么了fevr wordpress
  • wordpress 教 模版seo项目培训
  • 安徽 网站开发网站建设唯特和凡科哪个好
  • 专注营销型网站建设公司 做网站整站优化案例
  • 河南单位网站建设网页设计结果分析怎么写
  • 科技制作网站开发一套小程序多少钱
  • 验证码平台 wordpressseo文章代写一篇多少钱
  • 做公司网站有什么猫腻vultr宝塔wordpress
  • 网站版建设网络营销与直播电商专业介绍
  • 山西网络网站建设销售公司个人网站模板打包下载
  • 免费 个人 网站桂平网站设计
  • 建设公司网站都需要什么万网网站空间服务范围及费用
  • seo常用工具网站wordpress 数据字典
  • 地方门户网站的分类网上接活的平台有哪些
  • 营销网站 app开发千灯做网站
  • 做的网站没有注册制作一个网站流程
  • 建设电子商务网站背景app开发公司杰迅科技怎么样
  • 网站设计培训班创业国家域名注册服务网
  • 做购物网站的费用西安做网站哪里好
  • 微信建设网站襄阳做网站公司
  • 优惠建网站网店美工岗位职责
  • 网站建设案例模板公司网站怎么发布文章
  • visual studio 开发网站开发网站开发 自我评价
  • 动漫做h免费网站响水县住房和城乡建设局网站
  • 哪个网站做废旧好移动互联网开发好就业吗
  • wordpress k2网站优化培训