Keras Convolution1D与Convolution2D区别说明


Posted in Python onMay 22, 2020

以下是Convolution1D的例子:

from keras.layers import Convolution1D
from keras.models import Sequential
 
model=Sequential()
model.add(Convolution1D(
 filters=64,  #64个滤波器 -》生成 64深度
 kernel_size=3, #长度 为 3
 input_shape=(10,32), # 输入形状 就是 图片形状 (step,input_dim) input_dim 一般指词_dim
 padding='same' # 过滤模式
))
#Output Shape:(None, 10, 64) 
 
model.add(Convolution1D(
 filters=32,
 kernel_size=3,
 padding='same'
))
#Output Shape:(None, 10, 32)

以下是Convolution2D的例子:

from keras.layers import Convolution2D
from keras.models import Sequential
 
model=Sequential()
model.add(Convolution2D( 
 filters=64, # 64个滤波器 -》生成 64深度
 kernel_size=3, # 滤波器窗口 大小(3,3) 
 padding='same', # 过滤模式 
 input_shape=(256,256,3), # 输入形状 就是 图片形状 # 默认 data_format:channels_last (rows,cols,channels)
))
#Output Shape:(None, 256, 256, 64)
 
model.add(Convolution2D( 
 filters=32,
 kernel_size=3, 
 padding='same', # 过滤模式 
))
#Output Shape:(None, 256, 256, 32)

1.Convolution1D主要用于nlp,Convolution2D主要用于cv。实际上,Convolution1D也可以用于cv,Convolution2D也可以用于nlp,只是那个时候不是标准的卷积方式,而是经过一定变形的卷积。

2.可以看到Convolution1D的 只有3这一个参数,Convolution2D 却有两个参数3(即长度为3,宽度为3的卷积窗口)。表面上Convolution1D没有给出卷积的大小,Convolution2D给出了。实际上,在Convolution1D中,长度 为 句子 所有 word 的长度,宽度就是 句子中word的 dim (全称:dimension) ,宽度自动把整个tensor的宽度包裹住。

3.Convolution1D的input_shape是 ( 长度为10,宽度为32 )的tensor。Convolution2D的input_shape是 ( 宽度为256,长度为256,3个channel ) 的tensor。

下面画出大概的区别:

Keras Convolution1D与Convolution2D区别说明

补充知识:对于keras.layers.Conv1D的kernel_size参数的理解

今天在用keras添加卷积层的时候,发现了kernel_size这个参数不知怎么理解,keras中文文档是这样描述的:

kernel_size: 一个整数,或者单个整数表示的元组或列表, 指明 1D 卷积窗口的长度。

又经过多方查找,大体理解如下:

因为是添加一维卷积层Conv1D(),一维卷积一般会处理时序数据,所以,卷积核的宽度为1,而kernel_size就是卷积核的长度了,这样的意思就是这个卷积核是一个长方形的卷积核。

以上这篇Keras Convolution1D与Convolution2D区别说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3读取zip文件信息的方法
May 22 Python
Python编程之字符串模板(Template)用法实例分析
Jul 22 Python
深入理解Python单元测试unittest的使用示例
Nov 18 Python
Python字典中的键映射多个值的方法(列表或者集合)
Oct 17 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
Feb 22 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
利用Python进行图像的加法,图像混合(附代码)
Jul 14 Python
Python使用循环神经网络解决文本分类问题的方法详解
Jan 16 Python
python支持多继承吗
Jun 19 Python
python3的pip路径在哪
Jun 23 Python
python安装读取grib库总结(推荐)
Jun 24 Python
Python可变集合和不可变集合的构造方法大全
Dec 06 Python
Python pip安装模块提示错误解决方案
May 22 #Python
keras中的backend.clip用法
May 22 #Python
Pycharm修改python路径过程图解
May 22 #Python
TensorFlow keras卷积神经网络 添加L2正则化方式
May 22 #Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
May 22 #Python
python实现猜单词游戏
May 22 #Python
Django使用rest_framework写出API
May 21 #Python
You might like
简单的php写入数据库类代码分享
2011/07/26 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
JavaScript的变量作用域深入理解
2009/10/25 Javascript
JQUERY设置IFRAME的SRC值的代码
2010/11/30 Javascript
jquery中使用ajax获取远程页面信息
2011/11/13 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
详解AngularJS controller调用factory
2017/05/19 Javascript
Webpack实战加载SVG的方法
2017/12/26 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
2018/05/11 Javascript
js实现数字从零慢慢增加到指定数字示例
2019/11/07 Javascript
Vue关于组件化开发知识点详解
2020/05/13 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
[04:45]DOTA2上海特级锦标赛主赛事第四日RECAP
2016/03/06 DOTA
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
对Python3使运行暂停的方法详解
2019/02/18 Python
Pytorch实现神经网络的分类方式
2020/01/08 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
HTML5里autofocus自动聚焦属性使用介绍
2016/06/22 HTML / CSS
世界上最大的在线旅行社新加坡网站:Expedia新加坡
2016/08/25 全球购物
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
大学生职业规划前言模板
2013/12/27 职场文书
采购部经理岗位职责
2014/02/10 职场文书
租房协议书范本
2014/04/09 职场文书
医疗纠纷协议书
2014/04/16 职场文书
室内趣味活动方案
2014/08/24 职场文书
2015年招聘工作总结
2014/12/12 职场文书
ztree+ajax实现文件树下载功能
2021/05/18 Javascript