一维卷积神经网络(1D-CNN)

一维卷积常用在序列模型、自然语言处理领域;

假设输入数据维度为8,filter维度为5;

不加padding时,输出维度为4,如果filter的数量为16,那么输出数据的shape就是


二维卷积神经网络(2D-CNN)

二维卷积常用在计算机视觉、图像处理领域(在视频的处理中,是对每一帧图像分别利用CNN来进行识别,没有考虑时间维度的信息);

假设原始图像 shape 为(其中3为3个通道),使用32个大小为(其中3为深度,与通道数相同)的卷积核对其进行卷积,得到特征图的shape为


三维卷积神经网络(3D-CNN)

在神经网络的输入中增加时间这个维度(连续帧),神经网络就可以同时提取时间和空间特征,进行行为识别、视频处理;

比如:对3幅连续帧用三维卷积核进行卷积,可以理解为用3个不同的二维卷积核(二维卷积神经网络中使用的卷积核)卷积3张图,并将卷积结果相加(通过这种处理,网络就提取了时间之间的某种相关性);

三维卷积神经网络的训练和卷积神经网络的训练方式相同;参考:深度网络的训练过程与方法

在文献《3D Convolutional Neural Networks for Human Action Recognition》中三维卷积与二维卷积的对比图如下:

  

上图的三维卷积是对连续的三帧图像进行卷积操作(堆叠多个连续帧组成一个立方体,在立方体中利用三维卷积核进行卷积,这样得到的每个特征map都与上一层中3个邻近的连续帧相连);

三维卷积神经网络架构如下图:

input:7张大小为的连续帧;

hardwired,H1:通过设定的hardwired kernels获得5种特征(灰度、x方向梯度、y方向梯度、x方向光流、y方向光流),前三个特征可以对每帧分别操作获得,光流则需要利用2帧信息获得,所以H1层特征map数量为7+7+7+6+6=33;

convolution C2:3D卷积核的大小为(3为时间维度),即每次操作3帧图像,采用了2种不同的3D卷积核,增加了maps数量;

sub-sampling S3:按照图中降采样后maps数量保持不变,maps大小减半;

更多《计算机视觉与图形学》知识,可关注下方公众号:

一维卷积(1D-CNN)、二维卷积(2D-CNN)、三维卷积(3D-CNN)相关推荐

  1. (pytorch-深度学习系列)CNN二维卷积层-学习笔记

    二维卷积层 在二维互相关运算中,卷积窗口从输入数组的最左上方开始,按从左往右.从上往下的顺序,依次在输入数组上滑动.当卷积窗口滑动到某一位置时,窗口中的输入子数组与核数组按元素相乘并求和,得到输出数组 ...

  2. python中的一维卷积conv1d和二维卷积conv2d

    先来看二维卷积conv2d conv2d(input, filter, strides, padding, use_cudnn_on_gpu=True, data_format="NHWC& ...

  3. python图像卷积_图像处理——卷积原理、二维卷积python实现

    一:什么是卷积 离散卷积的数学公式可以表示为如下形式: f(x) =  - 其中C(k)代表卷积操作数,g(i)代表样本数据, f(x)代表输出结果. 举例如下: 假设g(i)是一个一维的函数,而且代 ...

  4. 通过具体的例子说明一维和二维的相关运算、卷积运算究竟是怎么做的。

    在图像处理中,大量的算法中用到的运算其实都是相关运算和卷积运算. 所以,我们很有必要知道相关运算.卷积运算究竟是怎么做的. 本篇博文通过具体而简单的例子向大家说明相关运算.卷积运算究竟是怎么做的. 0 ...

  5. 将一维时间序列转化成二维图片

    原文地址:Encoding Time Series as Images 虽然现在深度学习在计算机视觉和语音识别上发展得很好,但是碰到时间序列时,构建预测模型是很难的.原因包括循环神经网络较难训练.一些 ...

  6. Python编程基础:第十五节 二维列表2D Lists

    第十五节 二维列表2D Lists 前言 实践 前言 列表中的元素可以是任何形式,整型.浮点型.字符串型,甚至是一个列表.当列表的元素也是列表时,我们将其称为二维列表. 实践 我们先来创建多个一维列表 ...

  7. 【C 语言】数组 ( 验证二维数组内存是线性的 | 打印二维数组 | 以一维数组方式打印二维数组 | 打印二维数组值和地址 )

    文章目录 一.验证二维数组内存是线性的 1.打印二维数组 2.以一维数组方式打印二维数组 3.打印二维数组值和地址 二.完整代码示例 一.验证二维数组内存是线性的 验证二维数组内存是线性的 : 验证方 ...

  8. 一维数组名与二维数组名的关联

    1.一维数组名与二维数组名的关系之于普通指针与数组指针的关系 2.首先数组名编译器会隐式变换看做指针常量,因此a[i]与a+i是等价的. a+i返回由i指定的行地址,假设元素类型为char,则行指针类 ...

  9. 2022. 将一维数组转变成二维数组

    2022. 将一维数组转变成二维数组 给你一个下标从 0 开始的一维整数数组 original 和两个整数 m 和 n .你需要使用 original 中 所有 元素创建一个 m 行 n 列的二维数组 ...

  10. 一维数组转化为二维数组(java)

    由于经常在使用矩阵进行计算时,会首先将一维数组转为二维数组.因此,在这里记录一下,也希望对他人有帮助. package deal; /** author:合肥工业大学 管院学院 钱洋 *1563178 ...

最新文章

  1. ListView的高级使用
  2. 从Linux上查看接口路由IP(吓一跳ip)
  3. 剑指offer:合并两个有序的链表
  4. JSP输出HTML时产生的大量空格和换行的去除方法
  5. C# XML格式化显示
  6. UE4角色Location远距离时动画抖动问题(float精度不够)解决方案
  7. 《TCP/IP详解》学习笔记(二):数据链路层
  8. 搭建subversion 服务器,并自动部署项目
  9. CISCO CCNA路由器密码管理
  10. PyQt4--下拉列表QComboBox
  11. .NET架构设计、框架设计系列文章总结
  12. linux 查找mysql rpm包位置_linux如何查看rpm包的安装路径办法
  13. 【深入理解CSS】层叠、优先级、继承
  14. 微信小程序云开发———云存储
  15. [Pandas技巧] 多列值合并成一列
  16. 申宝证券-市场呈现出震荡分化走势
  17. 华为鸿蒙2.0开发文档及API
  18. centos测试主机网络极限速度
  19. do-while循环
  20. 编程资料 -C# 多线程 1

热门文章

  1. eclipse中字体大小及背景颜色设置
  2. 堆、栈的概念及使用特性
  3. 【文件夹访问被拒绝】删文件夹的时候遇到“你需要权限来执行此操作 你需要来自 我的本\Administrator 的权限才能对此文件夹进行更改”
  4. eNSP第二篇:Eth-trunk,链路聚合,常用命令,二层链路聚合和三层链路聚合
  5. 钉钉JSAPI鉴权,解决报错“签名校验无效”
  6. json的格式是什么?json的作用是什么?json是如何传递数据的?
  7. python一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
  8. ThinkPad X270 升级固态硬盘(M2 2242 NVMe)
  9. Split()拆分字符串与StringTokenizer拆分字符串
  10. Unity3D学习笔记——RigidBody(刚体)