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使用PyGreSQL操作PostgreSQL数据库教程
Jul 30 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
Apr 24 Python
python实现unicode转中文及转换默认编码的方法
Apr 29 Python
python 连接各类主流数据库的实例代码
Jan 30 Python
Python wxPython库使用wx.ListBox创建列表框示例
Sep 03 Python
Python实现将多个空格换为一个空格.md的方法
Dec 20 Python
python实现二级登陆菜单及安装过程
Jun 21 Python
python elasticsearch环境搭建详解
Sep 02 Python
python中的subprocess.Popen()使用详解
Dec 25 Python
python如何删除文件、目录
Jun 23 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
Oct 09 Python
pandas 实现将NaN转换为None
May 14 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实现telnet功能示例
2014/04/08 PHP
如何让thinkphp在模型中自动完成session赋值小教程
2014/09/05 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
动态加载js的几种方法
2006/10/23 Javascript
jQuery代码优化 遍历篇
2011/11/01 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
JavaScript数组迭代器实例分析
2015/06/09 Javascript
Javascript中的方法和匿名方法实例详解
2015/06/13 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
jquery树形菜单效果的简单实例
2016/06/06 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
jQuery AJAX timeout 超时问题详解
2016/06/21 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
JSON对象转化为字符串详解
2017/08/11 Javascript
vue组件watch属性实例讲解
2017/11/07 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
Python 快速实现CLI 应用程序的脚手架
2017/12/05 Python
python3 图片referer防盗链的实现方法
2018/03/12 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
python地震数据可视化详解
2019/06/18 Python
利用python-docx模块写批量生日邀请函
2019/08/26 Python
python 多线程中join()的作用
2020/10/29 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
澳大利亚家用电器在线商店:Billy Guyatts
2020/05/05 全球购物
一套C#面试题
2013/10/09 面试题
大学军训感想
2014/02/12 职场文书
公民授权委托书范本
2014/09/17 职场文书
个人典型事迹材料
2014/12/30 职场文书
致运动员的广播稿
2015/08/19 职场文书