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 相关文章推荐
Python写的一个简单监控系统
Jun 19 Python
Python 中 Virtualenv 和 pip 的简单用法详解
Aug 18 Python
pyqt5简介及安装方法介绍
Jan 31 Python
Python PO设计模式的具体使用
Aug 16 Python
python多环境切换及pyenv使用过程详解
Sep 27 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
Oct 28 Python
python3.x 生成3维随机数组实例
Nov 28 Python
pyqt5数据库使用详细教程(打包解决方案)
Mar 25 Python
django项目中新增app的2种实现方法
Apr 01 Python
Python无头爬虫下载文件的实现
Apr 02 Python
python 获取剪切板内容的两种方法
Nov 28 Python
Autopep8的使用(python自动编排工具)
Mar 02 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
Http 1.1 Etag 与 Last-Modified提高php效率
2008/01/10 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
php获取linux命令结果的实例
2017/03/13 PHP
Nigma vs Liquid BO3 第二场2.14
2021/03/10 DOTA
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
直接生成打开窗口代码,不必下载
2008/05/14 Javascript
了解jQuery技巧来提高你的代码
2010/01/08 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
2018/11/27 Javascript
vue实现微信分享功能
2018/11/28 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
如何实现vue的tree组件
2020/12/03 Vue.js
[01:20]DOTA2 2017国际邀请赛冠军之路无止竞
2017/06/19 DOTA
Python正则表达式匹配HTML页面编码
2015/04/08 Python
python 垃圾收集机制的实例详解
2017/08/20 Python
Python输出带颜色的字符串实例
2017/10/10 Python
Python中装饰器高级用法详解
2017/12/25 Python
利用Python如何实现一个小说网站雏形
2018/11/23 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
Python函数调用追踪实现代码
2020/11/27 Python
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
大学生优秀团员事迹材料
2014/01/30 职场文书
档案工作个人总结
2015/03/03 职场文书
2015年教师工作总结范文
2015/03/31 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书
创业计划书之便利店
2019/09/05 职场文书