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编写web API的教程
Apr 30 Python
Python工程师面试必备25条知识点
Jan 17 Python
Python中pow()和math.pow()函数用法示例
Feb 11 Python
python更改已存在excel文件的方法
May 03 Python
实用自动化运维Python脚本分享
Jun 04 Python
Python实现爬虫从网络上下载文档的实例代码
Jun 13 Python
Python get获取页面cookie代码实例
Sep 12 Python
python3 打印输出字典中特定的某个key的方法示例
Jul 06 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 Python
PyTorch预训练的实现
Sep 18 Python
Python实现单例模式的5种方法
Jun 15 Python
如何在python中实现ECDSA你知道吗
Nov 23 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 STRING 陷阱原理说明
2010/07/24 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
laravel 时间格式转时间戳的例子
2019/10/11 PHP
BOOM vs RR BO3 第二场2.13
2021/03/10 DOTA
一个JavaScript继承的实现
2006/10/24 Javascript
JavaScript Undefined,Null类型和NaN值区别
2008/10/22 Javascript
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
js实现动态创建的元素绑定事件
2016/07/19 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
2017/01/09 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
easyUI 实现的后台分页与前台显示功能示例
2020/06/01 Javascript
vuex实现购物车的增加减少移除
2020/06/28 Javascript
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
Python之多线程爬虫抓取网页图片的示例代码
2018/01/10 Python
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
浅谈Python小波分析库Pywavelets的一点使用心得
2019/07/09 Python
python装饰器使用实例详解
2019/12/14 Python
canvas实现圆绘制的示例代码
2019/09/11 HTML / CSS
澳大利亚办公室装修:JasonL Office Furniture
2019/06/25 全球购物
德国50岁以上交友网站:Lebensfreunde
2020/03/18 全球购物
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
介绍一下HTTP、HTTPS和SSL
2012/12/16 面试题
国际经济贸易专业推荐信
2013/11/06 职场文书
《在大海中永生》教学反思
2014/02/24 职场文书
家长寄语大全
2014/04/02 职场文书
社会稳定风险评估方案
2014/06/02 职场文书
办护照工作证明
2014/10/01 职场文书
Python中itertools库的四个函数介绍
2022/04/06 Python