卷积神经网络结构及其实现

  • 卷积神经网络结构(CNN Convolutional neural network)
    • 输入层
      • 将每个像素代表一个特征节点输入到网络中
    • 卷积层
      • 卷积运算的主要目的是使原信号特征增强,并降低噪音
      • 步长
        • 表示卷积核在图片上移动的格数
        • 步长大于一,是降维的一张方法
            卷积后图片的尺寸,步长为S,原始图片尺寸为[N1,N1],卷积核大小为[N2,N2]
            [(N1-N2)/S+1,(N1-N2)/S+1]
        
      • 方法
        • 0填充
          • 通过对55的灰度图添加边缘,使33的卷积层转化为5*5的卷积层
        • 多通道卷积
          • 通过不同的卷积提取不同的特征
          • 将这些特征图相同位置上的值相加,生成一张特征图
          • 加偏置,生成最终特征图
    • 降采样层
      • 降低网络训练参数及模型的过拟合程度
      • 可以通过池化进行降采样,但池化不是唯一的降采样
      • 池化
        • 计算图像一个区域上的某个特定特征的平均值或最大值
        • 均值池化
          • 对池化区域内的像素点取均值
          • 对背景信息更加敏感
        • 最大池化
          • 对池化区域内的像素点取最大值
          • 对纹理特征信息更加敏感
    • 全连接层
      • 对生成的特征进行加权
    • softmax层
      • 获得当前样例属于不同类别的概率
  • 在Tensorflow中的实现
    • 卷积函数
      • tf.nn.conv2d(input,filter,strides,padding,use_cudnn_on_gpu,name)
        • input
          • 需要做卷积的输入数据,这是一个4维的张量[batch,in_height,in_width,in_channels],要求类型为float32或者float64
          • batch为图像的数量
          • in_height/in_width图像的尺寸
          • inchannels 图像的通道,如果是彩色图像,value为3,灰度图像,value=1
        • filter
          • 卷积核 [filter_height,filter_width,in_channels,out_channels]
          • filter_height/filter_width 图像的尺寸
          • in_channels/out_channels 输入的通道数和输出的通道数
        • strides
          • 图像每一维的步长,是一个一维向量,长度为4
        • padding
          • 定义元素边框与元素内容之间的空间
          • same表示边缘填充,适用于全尺寸操作
          • valid表示边缘不填充
        • use_cudnn_on_gpu
          • bool类型,是否使用cudnn加速
        • name
          • 该操作的名称
            tf.nn.depthwise_conv2d(input,filter,strides,padding,name)
            tf.nn.separable_conv2d(input,depthwise_filter,pointwise_filter,strides,padding,name)
    • 池化函数
      • 最大池化
        • tf.nn.max_pool(value,ksize,strides,padding,name)
      • 平均池化
        • tf.nn.avg_pool(value,ksize,strides,padding,name)
      • 参数
        • value
          • 需要池化的输入,一般池化层接在卷积层后面,所以输入通常是conv2d所输出的feature map,依然是4维的张量[batch,in_height,in_width,in_channels]
        • ksize
          • 池化窗口大小,一遍不在batch(批处理)和channel(通道)上做池化,ksize一般为[1,height,width,1]
        • strides
          • 图像每一维的步长,是一个一维向量,长度为4
        • padding
          • 同卷积函数
        • name
          • 操作名称
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锋年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值