Keras卷积+池化层学习
转自:https://keras-cn.readthedocs.io/en/latest/layers/convolutional_layer/
https://keras-cn.readthedocs.io/en/latest/layers/pooling_layer/
1.con1D
keras.layers.convolutional.Conv1D(filters, kernel_size, strides=1, padding='valid', dilation_rate=1, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)
一维卷积层(即时域卷积),用以在一维输入信号上进行邻域滤波。当使用该层作为首层时,需要提供关键字参数input_shape
。例如(10,128)
代表一个长为10的序列,序列中每个信号为128向量。而(None, 128)
代表变长的128维向量序列。
该层生成将输入信号与卷积核按照单一的空域(或时域)方向进行卷积。如果use_bias=True
,则还会加上一个偏置项,若activation
不为None,则输出为经过激活函数的输出。
常用:
filters:卷积核的数目(即输出的维度)
kernel_size:整数或由单个整数构成的list/tuple,卷积核的空域或时域窗长度
strides:整数或由单个整数构成的list/tuple,为卷积的步长。任何不为1的strides均与任何不为1的dilation_rate均不兼容
- padding:补0策略,为“valid”, “same”
- activation:激活函数,为预定义的激活函数名。如果不指定该参数,将不会使用任何激活函数
- use_bias:布尔值,是否使用偏置项
- kernel_regularizer:施加在权重上的正则项
*可以将Convolution1D看作Convolution2D的快捷版,对例子中(10,32)的信号进行1D卷积相当于对其进行卷积核为(filter_length, 32)的2D卷积。
//以上这一句涉及到在1D的情况下的卷积计算过程。
2.Conv2D
keras.layers.convolutional.Conv2D(filters, kernel_size, strides=(1, 1), padding='valid', data_format=None, dilation_rate=(1, 1), activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)
二维卷积层,即对图像的空域卷积。该层对二维输入进行滑动窗卷积,当使用该层作为第一层时,应提供input_shape
参数。例如input_shape = (128,128,3)
代表128*128的彩色RGB图像(data_format='channels_last'
)
//1D多用来对序列数据处理,比如自然语言和语音。2D多用来做图像。
filters:卷积核的数目(即输出的维度)
kernel_size:单个整数或由两个整数构成的list/tuple,卷积核的宽度和长度。如为单个整数,则表示在各个空间维度的相同长度。
strides:单个整数或由两个整数构成的list/tuple,为卷积的步长。如为单个整数,则表示在各个空间维度的相同步长。任何不为1的strides均与任何不为1的dilation_rate均不兼容
padding:补0策略,为“valid”, “same” 。“valid”代表只进行有效的卷积,即对边界数据不处理。“same”代表保留边界处的卷积结果,通常会导致输出shape与输入shape相同。
activation:激活函数,为预定义的激活函数名(参考激活函数),或逐元素(element-wise)的Theano函数。如果不指定该参数,将不会使用任何激活函数(即使用线性激活函数:a(x)=x)
- data_format:字符串,“channels_first”或“channels_last”之一,代表图像的通道维的位置。该参数是Keras 1.x中的image_dim_ordering,“channels_last”对应原本的“tf”,“channels_first”对应原本的“th”。以128x128的RGB图像为例,“channels_first”应将数据组织为(3,128,128),而“channels_last”应将数据组织为(128,128,3)。该参数的默认值是
~/.keras/keras.json
中设置的值,若从未设置过,则为“channels_last”。
3.最大池化1D层
keras.layers.pooling.MaxPooling1D(pool_size=2, strides=None, padding='valid')
pool_size:整数,池化窗口大小
strides:整数或None,下采样因子,例如设2将会使得输出shape为输入的一半,若为None则默认值为pool_size。
padding:‘valid’或者‘same’
4.最大池化2D层
keras.layers.pooling.MaxPooling2D(pool_size=(2, 2), strides=None, padding='valid', data_format=None)
pool_size:整数或长为2的整数tuple,代表在两个方向(竖直,水平)上的下采样因子,如取(2,2)将使图片在两个维度上均变为原长的一半。为整数意为各个维度值相同且为该数字。
strides:整数或长为2的整数tuple,或者None,步长值。
border_mode:‘valid’或者‘same’
5.flatten展平
keras.layers.Flatten(data_format=None)
data_format:一个字符串,其值为 channels_last
(默认值)或者 channels_first。
model = Sequential() model.add(Conv2D(64, (3, 3),input_shape=(3, 32, 32), padding='same',)) # 现在:model.output_shape == (None, 64, 32, 32) model.add(Flatten()) # 现在:model.output_shape == (None, 65536)
//给的这个例子输入维度中第一维是通道。
6.Input
keras.engine.input_layer.Input()
- shape: 一个尺寸元组(整数),不包含批量大小。 例如,
shape=(32,)
表明期望的输入是按批次的 32 维向量。 - batch_shape: 一个尺寸元组(整数),包含批量大小。 例如,
batch_shape=(10, 32)
表明期望的输入是 10 个 32 维向量。batch_shape=(None, 32)
表明任意批次大小的 32 维向量。 - name: 一个可选的层的名称的字符串。 在一个模型中应该是唯一的(不可以重用一个名字两次)。 如未提供,将自动生成。
- dtype: 输入所期望的数据类型,字符串表示 (
float32
,float64
,int32
...) - sparse: 一个布尔值,指明需要创建的占位符是否是稀疏的。
- tensor: 可选的可封装到
Input
层的现有张量。 如果设定了,那么这个层将不会创建占位符张量。
转载于:https://www.cnblogs.com/BlueBlueSea/p/11058421.html
Keras卷积+池化层学习相关推荐
- 转:卷积神经网络_(1)卷积层和池化层学习
博主总结的很好,学习中.转载:http://www.cnblogs.com/zf-blog/p/6075286.htm 卷积神经网络_(1)卷积层和池化层学习 卷积神经网络(CNN)由输入层.卷积层. ...
- 卷积神经网络——池化层学习——最大池化
池化层(Pooling layers) 除了卷积层,卷积网络也经常使用池化层来缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性,我们来看一下. 先举一个池化层的例子,然后我们再讨论池化层的必要 ...
- cnn池化层输入通道数_(pytorch-深度学习系列)CNN中的池化层-学习笔记
CNN中的池化层 首先,池化(pooling)层的提出是为了缓解卷积层对位置的过度敏感性. 什么意思? 比如在图像边缘检测问题中,实际图像里,我们的目标物体不会总出现在固定位置,即使我们连续拍摄同一个 ...
- (pytorch-深度学习系列)CNN中的池化层-学习笔记
CNN中的池化层 首先,池化(pooling)层的提出是为了缓解卷积层对位置的过度敏感性. 什么意思? 比如在图像边缘检测问题中,实际图像里,我们的目标物体不会总出现在固定位置,即使我们连续拍摄同一个 ...
- cs231n-(7)卷积神经网络:架构,卷积层/池化层
架构总览 常用的层 卷积层 概述 池化层 归一化层 全连接层 全连接层转为卷积层 卷积网络架构 层模式 层大小设计模式 实例 计算资源考虑 额外资源 卷积神经网络和普通神经网络非常类似.卷积神经网络由 ...
- 深度学习入门 (九):卷积层和池化层的实现
目录 卷积神经网络 CNN 整体结构 卷积层 全连接层存在的问题 卷积运算 乘积累加运算 偏置 填充 (padding) 步幅 (stride) 小结:卷积层的输出特征图的大小 3 维数据的卷积运算 ...
- (pytorch-深度学习系列)pytorch卷积层与池化层输出的尺寸的计算公式详解
pytorch卷积层与池化层输出的尺寸的计算公式详解 要设计卷积神经网络的结构,必须匹配层与层之间的输入与输出的尺寸,这就需要较好的计算输出尺寸 先列出公式: 卷积后,池化后尺寸计算公式: (图像尺寸 ...
- 1.9 池化层-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 1.8 简单卷积网络示例 回到目录 1.10 卷积神经网络示例 池化层 (Pooling Layers) 除了卷积层,卷积网络也经常使用池化层来缩减模型的大小,提高计算速度, ...
- Keras.layers各种层介绍,网络层、卷积层、池化层 等
[转载]Keras.layers各种层介绍 - 心冰之海 - bk园 https://www.cnblogs.com/lhxsoft/p/13534667.html 文章导航 一.网络层 1.常用网络 ...
最新文章
- android 52 粘滞广播
- 字节跳动李航:自学机器学习,研究AI三十载,他说AI发展或进入平缓期
- Windows下关于Composer使用时出现的问题及解决办法
- 机器学习-线性回归与梯度下降
- 人一生要解决的50个关键问题
- MySql中启用InnoDB数据引擎的方法
- 协程、asyncio、异步编程
- mysql command type_mysql command line client 使用命令
- QDoc支持衍生项目
- Storm精华问答 | 如何理解spout/bolt的生命周期?
- java中类的方法分为 类方法_Java中类的方法成员分为()方法和实例方法。
- Hibernate ——二级缓存
- MFC 之序列化 serialize 和CArchive
- win10改win7 bios设置方法
- 引入时间轴:动态图模型的共性与特征
- 511遇见易语言调用百度OCR文字在线本地识别及游戏画面时时识别
- 库函数 qsort 的用法
- 初等变换法求解线性方程组
- ArcGIS水文分析实战教程(15)库容和淹没区计算
- MFC软件获取USB设备的制造商、产品、序列号
热门文章
- SQL SERVER 触发器示例
- 整理了一下SQL Server里面可能经常会用到的日期格式转换方法
- [Ubuntu] 安装/卸载 声卡驱动
- 读农民工兄弟学C#文章后的感觉
- usaco Postal Vans(dp)
- 电脑显示没有被指定在上运行_win10系统运行程序提示“dll没有被指定在windows上运行”的办法...
- 索赔cs1.6最新服务器,成功解决CS1.6刷不出服务器
- linux内核的进程管理,Linux内核设计与实现——进程管理
- mysql hang_mysql夯hang死堆栈采集工具
- MySQL面试题 | 附答案解析(十八)