zoukankan      html  css  js  c++  java
  • 如何将卷积神经网络中的全连接层变成卷积层

    卷积由feature map到全连接层的设置节点个数也为一个超参数,可以进行设置;同时,这个过程也可以看作是一个卷积的过程。

    全连接层实际就是卷积核大小为上层特征大小的卷积运算,一个卷积核卷积后的结果为一个节点,就对应全连接层的一个神经元。
    假设: 最后一个卷积层的输出为7×7×512,连接此卷积层的全连接层为1×1×4096(相当于全连接网络有4096个神经元)。
    相当于一个全链接网络的输入层有7×7×512个输入神经元,下一层有4096个神经元。
    如果将这个全连接层转化为卷积层:
    1.共需要4096组滤波器
    2.每组滤波器含有512个卷积核
    3.每个卷积核的大小为7×7
    4.则输出为1×1×4096

    由于每个滤波核的大小和上一层的feature map大小一样,所有feature map上的cell不共享权重,而全连接网络就不是共享权重的,保证了转换后的卷积层的运算结果和全连接层是一样的。
    如果: 后面再连接一个1×1×2048的全连接层(相当于全连接网络有4096个神经元)。
    则其对应的转换后的卷积层的参数为:
    1.共有2048组滤波器
    2.每组滤波器含有4096个卷积核
    3.每个卷积核的大小为1×1
    4.则输出为1×1×2048
    拓展:
    全连接层的坏处就在于其会破坏图像的空间结构,因此人们便开始用卷积层来“代替”全连接层,通常采用1×1的卷积核,这种不包含全连接的CNN成为全卷积神经网络(FCN),FCN最初是用于图像分割任务,之后开始在计算机视觉领域的各种问题上得到应用,事实上,Faster R-CNN中用来生成候选窗口的CNN就是一个FCN。FCN的特点就在于输入和输出都是二维的图像,并且输入和输出具有相对应的空间结构,在这种情况下,我们可以将FCN的输出看作是一张热度图,用热度来指示待检测的目标的位置和覆盖的区域。在目标所处的区域内显示较高的热度,而在背景区域显示较低的热度,这也可以看成是对图像上的每一个像素点都进行了分类,这个点是否位于待检测的目标上。

  • 相关阅读:
    【Project4】【技术总结】
    JS实现新浪微博搜索框提示的特效代码
    动态效果显示的人物结构的关系图
    人立方
    javascript 动态显示复杂结构的网络关系图
    Adding a Timepicker to jQuery UI Datepicker
    【Framework】【清单】
    JavaScript[Mount]
    10 jQuery Time Picker Plugins
    CSS样式切换技巧 动态更换网页色彩皮肤(转)
  • 原文地址:https://www.cnblogs.com/ChenKe-cheng/p/10769198.html
Copyright © 2011-2022 走看看