正如上一篇文章所述,CNN的最后一般是用于分类是一两个全连接层,对于前面池化层输出的二维特征图是怎么转化成一维的一个向量的呢?

从上图的结构中可以看到,最后两层是两个矩形,也就是一维向量,以MNIST手写数据集为例,上层输出的特征图(Feature Map)为14*14*64大小,经过一个全连接层(这里第一个全连接层的神经元设置为1024个)之后,变成了1*1024的向量。

为什么维数降低了呢?别忘了全连接层的作用在于分类,所以最后需要进行各个类别的概率计算,也就是将该测试样本属于某一类别的可能性计算出来。也没有什么神秘之处,只要对每一张输入的特征图,用一个和图像一样大小的核卷积,这样整幅图就变成了一个数了,其实就是有64*1024个14*14的卷积核卷积出来的,如果厚度是64就是那64个核卷积完了之后相加即可,这样就能把一张图高度浓缩成一个数了。这也就是为什么经过全连接层之后变成一维向量的原因了。

说起卷积核,我们来具体了解一下卷积核。在CNN中,卷积层的卷积核具有长、宽、深三个维度。卷积核本质上就是权重矩阵。

卷积核的长、宽都是人为指定的,长 X 宽也被称为卷积核的尺寸,常用的尺寸为3X3,5X5等;卷积核的深度与当前图像的深度(feather map的张数)相同,所以指定卷积核时,只需指定其长和宽 两个参数。例如,在原始图像层 (输入层),如果图像是灰度图像,其feather map数量为1(MNIST为什么是28*28*1的原因,MNIST数据集中的图像都是灰度图),则卷积核的深度也就是1;如果图像是grb图像,其feather map数量为3(有3个色彩通道),则卷积核的深度也就是3。

其实,这也是和全连接神经网络一样的地方,正是CNN基于权重共享的理念,减少了很多参数,可以看出,全连接的参数实在是太多了,这张图中就有14*14*64*1024个参数,而上面的卷积和池化过程最多也不过28*28*32,所以在后来看到的算法应用方面很多都规避了全连接层,目前主流的一个方法是全局平均值。也就是最后那一层的feature map(最后一层卷积的输出结果),直接求平均值。有多少种分类就训练多少层,这十个数字就是对应的概率或者叫置信度。MNIST数据集可以通过tensorflow框架中的TensorBoard进行可视化,如下图所示。

CNN中的卷积层与全连接层都是计算点乘,所以全连接层和卷积层可以相互转换。卷积层转换成全连接层的过程就是将权值补0,增大矩阵的过程。正是基于卷积神经网络的共享理念,在转换之后会产生许多等值参数。当然,全连接层也可以变成卷积层。

CNN全连接层怎么转化成一维向量?相关推荐

  1. CNN 全连接层与卷积层深刻理解

    CNN 全连接层与卷积层 卷积和全连接关系 卷积取的是局部特征,全连接就是把以前的局部特征重新通过权值矩阵组装成完整的图. 因为用到了所有的局部特征,所以叫全连接 什么是全连接层 全连接层(fully ...

  2. 激活函数和全连接层——基于Pytorch

    1.激活函数 1.1.什么是激活函数? 神经网络中的每个神经元接受上一层的输出值作为本神经元的输入值,并将处理结果传递给下一层(隐藏层或输出层).在多层神经网络中,上层的输出和下层的输入之间具有一个函 ...

  3. 【深度学习】全连接层

    4.5 全连接层 全连接层是一个列向量(单个样本).通常用于深度神经网络的后面几层,用于图像分类任务. 全连接层,是每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来.由于其全相连的特 ...

  4. 对全连接层(fully connected layer)的通俗理解

    原文地址 https://blog.csdn.net/qq_39521554/article/details/81385159 定义 全连接层(fully connected layers,FC)在整 ...

  5. 卷积层与全连接层的区别

    卷积层.池化层.全连接层的概念:https://towardsdatascience.com/convolutional-neural-network-17fb77e76c05 关于卷积.全连接层的参 ...

  6. 【深度学习】全连接层的作用

    原文链接 https://www.zhihu.com/question/41037974/answer/150522307 全连接层(fully connected layers,FC)在整个卷积神经 ...

  7. caffe中常用的层:全连接层Full Connection层

    全连接层到底什么用?我来谈三点. 全连接层(fully connected layers,FC)在整个卷积神经网络中起到"分类器"的作用.如果说卷积层.池化层和激活函数层等操作是将 ...

  8. 什么是1*1卷积?1*1的卷积核和全连接层有什么异同?

    简单回答一下: 1.数学本质上一样,都是特征图中的元素乘以权重再求和.全连接是把特征图拆开组成一个一维向量,再乘以一个权重向量,这两个向量中的元素一一对应所以输出结果是一个值.而1*1卷积,我们知道卷 ...

  9. 解释一下全连接层CNN中全连接层是什么样的

    (名称:全连接.意思就是输出层的神经元和输入层的每个神经元都连接) 在卷积神经网络的最后,往往会出现一两层全连接层,全连接一般会把卷积输出的二维特征图转化成一维的一个向量,这是怎么来的呢?目的何在呢? ...

最新文章

  1. linux做网卡bond,linux下设置网卡bond
  2. java集成网站微信,微博,qq登录
  3. 中国大学MOOC 计算机组成原理第4章 测试(上)
  4. 操作主机 RID matser
  5. 深入理解C#:编程技巧总结(一)
  6. java面试题43要使某个类能被同一个包中的其他类访问,但不能被这个包以外的类访问,可以( )
  7. java 自定义形状按钮_制作自定义背景Button按钮、自定义形状Button的全攻略
  8. 阿里面试回答的认真总结
  9. app怎么调用mysql数据_数据库: 安装配置数据库,使用Navicat for MySQL和手机APP 连接测试...
  10. 利用shell脚本远程磁盘分区
  11. MyBatis的ResultMaps
  12. 如何进行大数据分析及处理(总结)
  13. js-JavaScript常见的创建对象的几种方式
  14. 大数据学习开篇:了解大数据导论、清楚大数据应用领域和前景
  15. MWC-电机、电池螺旋桨搭配
  16. 怎么样对阿里云ECS主机进行绑定域名
  17. SAP系统销售流程成本和收入的确认
  18. 非零基础自学Golang 第3章 基本变量与类型 3.1 Go语言变量
  19. Hadoop相关核心配置文件说明
  20. android app防止锁屏_Android 禁止屏幕休眠和锁屏的方法

热门文章

  1. Python数据分析绘图库,pyecharts绘制各类地图
  2. PHP面向对象继承的概念
  3. PHP Switch语句的用法
  4. win10 mysql 启动 bat_windows系统下(如win10)如何将bat在系统开机但未登录情况下自动启动...
  5. vista下装xp双系统
  6. go-zero 使用 gorm,gozero gorm
  7. WIN10 cmd使用cd命令无效
  8. NGS数据分析实践:04. 准备测序数据
  9. 自动图片生成在前端开发中的一些尝试
  10. Python+Vue计算机毕业设计在线机票销售系统mfd2g(源码+程序+LW+部署)