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

台山网站建设购物网站开发 书籍

台山网站建设,购物网站开发 书籍,网站建设拿什么框架,二维码短链接生成器卷积神经网络的整体结构、卷积层、池化、python实现一、整体结构二、卷积层三、池化层四、python实现卷积层、池化层一、整体结构 神经网络相邻层所有神经元之间都有连接#xff0c;称为全连接。前面用Affine层实现了全连接。 举个例子 全连接神经网络结构#xff1a; 卷积… 卷积神经网络的整体结构、卷积层、池化、python实现一、整体结构二、卷积层三、池化层四、python实现卷积层、池化层一、整体结构 神经网络相邻层所有神经元之间都有连接称为全连接。前面用Affine层实现了全连接。 举个例子 全连接神经网络结构 卷积神经网络CNN的结构 新增了Conv卷积层和Pooling池化层之前的Affine-ReLU连接替换成了Conv-ReLU-Pooling连接。 CNN中靠近输出的层中使用之前Affine-ReLU组合最后输出层使用之前Affine-softmax组合这是一种常见的CNN结构。 二、卷积层 全连接神经网络存在的问题就是数据的形状被忽视了输入三维图像但是向全连接层输入时需将三维拉成一维这导致忽视了形状中含有的空间信息也就是说全连接无法利用与形状相关的信息。 卷积神经网络为了解决这一问题向各层中传递的数据是有形状的数据比如三维数据。 卷积层进行卷积运算就像是图像处理的滤波。 对于输入数据卷积运算以一定间隔滑动滤波器的窗口并将各个位置上滤波器的元素和输入的对应元素相乘再求和进行所谓乘积累加运算。 全连接神经网络中参数有权重和偏置等。 CNN中滤波器里面的数就是参数滤波器里面数据的偏置也是参数。要通过cnn网络对数据的学习把这些参数给找到从而达到优异的学习效果。 有时候进行卷积处理前要进行填充也就是向输入数据周围填入固定的数据填充主要是为了调整输出的大小。(4,4)的输入数据应用(3,3)滤波器时输出为(2,2)输出比输入缩小两个元素就导致一个问题如果每次进行卷积运算都缩小输出那么某时刻就无法再对输出进行卷积运算网络就传不下去了。如果说这个例子填充幅度是1那么卷积运算输出也是(4,4)卷积运算就可以在保持空间大小不变的情况下传递数据给下一层。 增大步幅输出大小会变小增大填充输出大小会变大。 假设输入大小为(H,W),滤波器大小为(FH,FW),输出大小为(OH,OW)填充为P步幅为S。 有下面这个公式。 多维数据的卷积运算 通道数为C、高度为H、长度为W的数据形状(C,H,W) 滤波器通道数为C、高度为FH、长度为FW(C,FH,FW) 卷积后输出的是一张特征图。可以这样理解一个小方块在大方块里面移动由于大方块的C和小方块一样所以卷积后是二维的。 如果想在通道上也有多个卷积运算就需要用到多个滤波器如下图。输出将以方块的形式传给下一层。 如果增加偏置如下图小长方体也就是FN个偏置值。 如果增加批处理也就是一次性处理N个数据那么各层传递数据保存维度将增加一维如下图。 三、池化层 池化是缩小高、长方向上的空间运算。Max池化层是获取目标区域最大值然后把最大值放到输出数据的其中一个元素里。池化层没有要学习的参数通道数不发生变化。池化对输入数据微小偏差具有鲁棒性也就是说输入数据发生微小偏差时池化层返回与输入数据没发生微小偏差时相同的输出结果。 四、python实现卷积层、池化层 对于卷积来说im2col这个函数能够把大方块的小方块展开一行这样的话能和滤波器的小方块 进行矩阵乘积运算如下图所示。 对于池化来说im2col依然可以这么展开就是把大正方形里面的小正方形展成一行这里就不放图了。 im2col实现代码 def im2col(input_data, filter_h, filter_w, stride1, pad0):Parameters----------input_data : 由(数据量, 通道, 高, 长)的4维数组构成的输入数据filter_h : 滤波器的高filter_w : 滤波器的长stride : 步幅pad : 填充Returns-------col : 2维数组N, C, H, W input_data.shapeout_h (H 2*pad - filter_h)//stride 1out_w (W 2*pad - filter_w)//stride 1img np.pad(input_data, [(0,0), (0,0), (pad, pad), (pad, pad)], constant)col np.zeros((N, C, filter_h, filter_w, out_h, out_w))for y in range(filter_h):y_max y stride*out_hfor x in range(filter_w):x_max x stride*out_wcol[:, :, y, x, :, :] img[:, :, y:y_max:stride, x:x_max:stride]col col.transpose(0, 4, 5, 1, 2, 3).reshape(N*out_h*out_w, -1)return col反向传播时候要进行im2col逆处理用的是col2im函数。 def col2im(col, input_shape, filter_h, filter_w, stride1, pad0):Parameters----------col :input_shape : 输入数据的形状例(10, 1, 28, 28)filter_h :filter_wstridepadReturns-------N, C, H, W input_shapeout_h (H 2*pad - filter_h)//stride 1out_w (W 2*pad - filter_w)//stride 1col col.reshape(N, out_h, out_w, C, filter_h, filter_w).transpose(0, 3, 4, 5, 1, 2)img np.zeros((N, C, H 2*pad stride - 1, W 2*pad stride - 1))for y in range(filter_h):y_max y stride*out_hfor x in range(filter_w):x_max x stride*out_wimg[:, :, y:y_max:stride, x:x_max:stride] col[:, :, y, x, :, :]return img[:, :, pad:H pad, pad:W pad]卷积层、池化层实现代码 class Convolution:def __init__(self, W, b, stride1, pad0):self.W Wself.b bself.stride strideself.pad pad# 中间数据backward时使用self.x None self.col Noneself.col_W None# 权重和偏置参数的梯度self.dW Noneself.db Nonedef forward(self, x):FN, C, FH, FW self.W.shapeN, C, H, W x.shapeout_h 1 int((H 2*self.pad - FH) / self.stride)out_w 1 int((W 2*self.pad - FW) / self.stride)col im2col(x, FH, FW, self.stride, self.pad)col_W self.W.reshape(FN, -1).Tout np.dot(col, col_W) self.bout out.reshape(N, out_h, out_w, -1).transpose(0, 3, 1, 2)self.x xself.col colself.col_W col_Wreturn outdef backward(self, dout):FN, C, FH, FW self.W.shapedout dout.transpose(0,2,3,1).reshape(-1, FN)self.db np.sum(dout, axis0)self.dW np.dot(self.col.T, dout)self.dW self.dW.transpose(1, 0).reshape(FN, C, FH, FW)dcol np.dot(dout, self.col_W.T)dx col2im(dcol, self.x.shape, FH, FW, self.stride, self.pad)return dxclass Pooling:def __init__(self, pool_h, pool_w, stride1, pad0):self.pool_h pool_hself.pool_w pool_wself.stride strideself.pad padself.x Noneself.arg_max Nonedef forward(self, x):N, C, H, W x.shapeout_h int(1 (H - self.pool_h) / self.stride)out_w int(1 (W - self.pool_w) / self.stride)col im2col(x, self.pool_h, self.pool_w, self.stride, self.pad)col col.reshape(-1, self.pool_h*self.pool_w)arg_max np.argmax(col, axis1)out np.max(col, axis1)out out.reshape(N, out_h, out_w, C).transpose(0, 3, 1, 2)self.x xself.arg_max arg_maxreturn outdef backward(self, dout):dout dout.transpose(0, 2, 3, 1)pool_size self.pool_h * self.pool_wdmax np.zeros((dout.size, pool_size))dmax[np.arange(self.arg_max.size), self.arg_max.flatten()] dout.flatten()dmax dmax.reshape(dout.shape (pool_size,)) dcol dmax.reshape(dmax.shape[0] * dmax.shape[1] * dmax.shape[2], -1)dx col2im(dcol, self.x.shape, self.pool_h, self.pool_w, self.stride, self.pad)return dx
http://www.pierceye.com/news/903147/

相关文章:

  • 如何做双版网站wordpress 36kr
  • 东莞企石网站设计最新便民信息汇总
  • 浏阳做网站公司做网站app优惠活动的
  • 商务网站开发公司2021网页qq登陆
  • vs 网站开发教程docker 部署wordpress
  • 平面网站设计wordpress数据表更换域名
  • 上海网站设计合理柚v米科技济南网站优化公司电话
  • 卓拙科技做网站吗怎么用php做网站后台程序
  • 山东企业建站系统费用抚宁区建设局网站
  • 免费购物网站程序国外公共空间设计网站
  • 网站 选项卡 图标网站 关键词
  • 怎样在各大网站做有效的宣传抽奖网站怎么做的
  • 建立网站需要多少钱 索 圈湖南岚鸿新开传奇网站合击
  • 快手官方网站音乐人怎么做商城建站系统源码
  • 南充市建设厅官方网站高州做网站
  • 自建网站的优缺点wordpress题库制作
  • 哪家公司做网站毕业设计心理评测网站开发
  • 建设电影网站数据库脚本问答网站如何优化
  • 嘉峪关建设路小学网站游戏网页链接
  • 阿里云 网站根目录广东建筑企业50强
  • 河北省网络科技网站装饰设计素描
  • 合肥网站建设索q479185700企业做网站公司哪家好
  • wordpress暂停网站兰州网站建设方法
  • 丰台网站制作html教程 菜鸟教程
  • 在那个网站做直播好赚钱吗重庆妇科医院排名大全
  • 在线教育网站建设投标书查询公司的网站备案信息查询
  • 俄文网站策划wdcp wordpress
  • 建设个人网站流程中国工程建设招聘信息网站
  • 电影网站设计说明书在原域名给公司建立网站
  • 小规模公司做网站成本是什么wordpress主题转html