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实现查询苹果手机维修进度
Mar 16 Python
将Python代码嵌入C++程序进行编写的实例
Jul 31 Python
简单介绍使用Python解析并修改XML文档的方法
Oct 15 Python
通过源码分析Python中的切片赋值
May 08 Python
Python 面试中 8 个必考问题
Nov 16 Python
django富文本编辑器的实现示例
Apr 10 Python
Python读写文件基础知识点
Jun 10 Python
使用Python函数进行模块化的实现
Nov 15 Python
基于python实现计算两组数据P值
Jul 10 Python
python如何爬取动态网站
Sep 09 Python
解决python3中os.popen()出错的问题
Nov 19 Python
Python中的程序流程控制语句
Feb 24 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 SQL之where语句生成器
2009/03/24 PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
2013/07/15 PHP
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
2015/12/19 PHP
JavaScript版代码高亮
2006/06/26 Javascript
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
instanceof和typeof运算符的区别详解
2014/01/06 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
JS中的Replace方法使用经验分享
2015/05/20 Javascript
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
2015/12/02 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
VUE 全局变量的几种实现方式
2018/08/22 Javascript
angular4+百分比进度显示插件用法示例
2019/05/05 Javascript
利用Electron简单撸一个Markdown编辑器的方法
2019/06/10 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
[02:14]DOTA2英雄基础教程 修补匠
2013/12/23 DOTA
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
Python处理字符串之isspace()方法的使用
2015/05/19 Python
Pandas的read_csv函数参数分析详解
2019/07/02 Python
Python拆分大型CSV文件代码实例
2019/10/07 Python
520使用Python实现“我爱你”表白
2020/05/20 Python
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
幼儿园中秋节活动方案
2014/02/06 职场文书
《散步》教学反思
2014/03/02 职场文书
关于运动会的口号
2014/06/07 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书
MySQL库表名大小写的选择
2021/06/05 MySQL
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python