一维卷积(1D-CNN)、二维卷积(2D-CNN)、三维卷积(3D-CNN)
一维卷积神经网络(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)相关推荐
- (pytorch-深度学习系列)CNN二维卷积层-学习笔记
二维卷积层 在二维互相关运算中,卷积窗口从输入数组的最左上方开始,按从左往右.从上往下的顺序,依次在输入数组上滑动.当卷积窗口滑动到某一位置时,窗口中的输入子数组与核数组按元素相乘并求和,得到输出数组 ...
- python中的一维卷积conv1d和二维卷积conv2d
先来看二维卷积conv2d conv2d(input, filter, strides, padding, use_cudnn_on_gpu=True, data_format="NHWC& ...
- python图像卷积_图像处理——卷积原理、二维卷积python实现
一:什么是卷积 离散卷积的数学公式可以表示为如下形式: f(x) = - 其中C(k)代表卷积操作数,g(i)代表样本数据, f(x)代表输出结果. 举例如下: 假设g(i)是一个一维的函数,而且代 ...
- 通过具体的例子说明一维和二维的相关运算、卷积运算究竟是怎么做的。
在图像处理中,大量的算法中用到的运算其实都是相关运算和卷积运算. 所以,我们很有必要知道相关运算.卷积运算究竟是怎么做的. 本篇博文通过具体而简单的例子向大家说明相关运算.卷积运算究竟是怎么做的. 0 ...
- 将一维时间序列转化成二维图片
原文地址:Encoding Time Series as Images 虽然现在深度学习在计算机视觉和语音识别上发展得很好,但是碰到时间序列时,构建预测模型是很难的.原因包括循环神经网络较难训练.一些 ...
- Python编程基础:第十五节 二维列表2D Lists
第十五节 二维列表2D Lists 前言 实践 前言 列表中的元素可以是任何形式,整型.浮点型.字符串型,甚至是一个列表.当列表的元素也是列表时,我们将其称为二维列表. 实践 我们先来创建多个一维列表 ...
- 【C 语言】数组 ( 验证二维数组内存是线性的 | 打印二维数组 | 以一维数组方式打印二维数组 | 打印二维数组值和地址 )
文章目录 一.验证二维数组内存是线性的 1.打印二维数组 2.以一维数组方式打印二维数组 3.打印二维数组值和地址 二.完整代码示例 一.验证二维数组内存是线性的 验证二维数组内存是线性的 : 验证方 ...
- 一维数组名与二维数组名的关联
1.一维数组名与二维数组名的关系之于普通指针与数组指针的关系 2.首先数组名编译器会隐式变换看做指针常量,因此a[i]与a+i是等价的. a+i返回由i指定的行地址,假设元素类型为char,则行指针类 ...
- 2022. 将一维数组转变成二维数组
2022. 将一维数组转变成二维数组 给你一个下标从 0 开始的一维整数数组 original 和两个整数 m 和 n .你需要使用 original 中 所有 元素创建一个 m 行 n 列的二维数组 ...
- 一维数组转化为二维数组(java)
由于经常在使用矩阵进行计算时,会首先将一维数组转为二维数组.因此,在这里记录一下,也希望对他人有帮助. package deal; /** author:合肥工业大学 管院学院 钱洋 *1563178 ...
最新文章
- ListView的高级使用
- 从Linux上查看接口路由IP(吓一跳ip)
- 剑指offer:合并两个有序的链表
- JSP输出HTML时产生的大量空格和换行的去除方法
- C# XML格式化显示
- UE4角色Location远距离时动画抖动问题(float精度不够)解决方案
- 《TCP/IP详解》学习笔记(二):数据链路层
- 搭建subversion 服务器,并自动部署项目
- CISCO CCNA路由器密码管理
- PyQt4--下拉列表QComboBox
- .NET架构设计、框架设计系列文章总结
- linux 查找mysql rpm包位置_linux如何查看rpm包的安装路径办法
- 【深入理解CSS】层叠、优先级、继承
- 微信小程序云开发———云存储
- [Pandas技巧] 多列值合并成一列
- 申宝证券-市场呈现出震荡分化走势
- 华为鸿蒙2.0开发文档及API
- centos测试主机网络极限速度
- do-while循环
- 编程资料 -C# 多线程 1
热门文章
- eclipse中字体大小及背景颜色设置
- 堆、栈的概念及使用特性
- 【文件夹访问被拒绝】删文件夹的时候遇到“你需要权限来执行此操作 你需要来自 我的本\Administrator 的权限才能对此文件夹进行更改”
- eNSP第二篇:Eth-trunk,链路聚合,常用命令,二层链路聚合和三层链路聚合
- 钉钉JSAPI鉴权,解决报错“签名校验无效”
- json的格式是什么?json的作用是什么?json是如何传递数据的?
- python一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
- ThinkPad X270 升级固态硬盘(M2 2242 NVMe)
- Split()拆分字符串与StringTokenizer拆分字符串
- Unity3D学习笔记——RigidBody(刚体)