1. 卷积层

1.1. Convolution1D层

一维卷积层,用以在一维输入信号上进行邻域滤波。当使用该层作为首层时,需要提供关键字参数 input_dim 或 input_shape 。
keras.layers.convolutional.Convolution1D(nb_filter, filter_length, init='uniform', activation='linear', weights=None, border_mode='valid', subsample_length=1, W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True, input_dim=None, input_length=None)
  • nb_filter:卷积核的数目(即输出的维度)
  • filter_length:卷积核的空域或时域长度
  • init:初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的Theano函数。该参数仅在不传递 weights 参数时有意义。
  • activation:激活函数,为预定义的激活函数名,或逐元素( element-wise)的Theano函数。如果不指定该参数,将不会使用任何激活函数(即使用线性激活函数: a(x)=x)
  • weights:权值,为numpy array的list。该list应含有一个形如( input_dim,output_dim)的权重矩阵和一个形如(output_dim,)的偏置向量。
  • border_mode:边界模式,为“valid”或“same”
  • subsample_length:输出对输入的下采样因子
  • W_regularizer:施加在权重上的正则项,为WeightRegularizer对象
  • b_regularizer:施加在偏置向量上的正则项,为WeightRegularizer对象
  • activity_regularizer:施加在输出上的正则项,为ActivityRegularizer对象
  • W_constraints:施加在权重上的约束项,为Constraints对象
  • b_constraints:施加在偏置上的约束项,为Constraints对象
  • bias:布尔值,是否包含偏置向量(即层对输入做线性变换还是仿射变换)
  • input_dim:整数,输入数据的维度。当该层作为网络的第一层时,必须指定该参数或 input_shape 参数。
  • input_length:当输入序列的长度固定时,该参数为输入序列的长度。当需要在该层后连接 Flatten 层,然后又要连接 Dense 层时,需要指定该参数,否则全连接的输出无法计算出来。
输入shape形如( samples, steps, input_dim)的3D张量
输出shape形如( samples, new_steps, nb_filter)的3D张量,因为有向量填充的原因, steps 的值会改变
# apply a convolution 1d of length 3 to a sequence with 10 timesteps,
# with 64 output filters
model = Sequential()
model.add(Convolution1D(64, 3, border_mode='same', input_shape=(10, 32)))
# now model.output_shape == (None, 10, 64)
# add a new conv1d on top
model.add(Convolution1D(32, 3, border_mode='same'))
# now model.output_shape == (None, 10, 32)

可以将Convolution1D看作Convolution2D的快捷版,对例子中( 10, 32)的信号进行1D卷积相当于对其进行卷积核为( filter_length, 32)的2D卷积。

1.2. AtrousConvolution1D层

AtrousConvolution1D层用于对1D信号进行滤波,是膨胀/带孔洞的卷积。参数与Convolution1D类似
keras.layers.convolutional.AtrousConvolution1D(nb_filter, filter_length, init='uniform', activation='linear', weights=None, border_mode='valid', subsample_length=1, atrous_rate=1, W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True)
  • atrous_rate:卷积核膨胀的系数,在其他地方也被称为'filter_dilation'

1.3. Convolution2D层

二维卷积层对二维输入进行滑动窗卷积,当使用该层作为第一层时,应提供 input_shape 参数。
keras.layers.convolutional.Convolution2D(nb_filter, nb_row, nb_col, init='glorot_uniform', activation='linear', weights=None, border_mode='valid', subsample=(1, 1), dim_ordering='th', W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True)
  • nb_filter:卷积核的数目
  • nb_row:卷积核的行数
  • nb_col:卷积核的列数
  • init:初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的Theano函数。该参数仅在不传递 weights 参数时有意义。
  • activation:激活函数,为预定义的激活函数名,或逐元素( element-wise)的Theano函数。如果不指定该参数,将不会使用任何激活函数(即使用线性激活函数: a(x)=x)
  • weights:权值,为numpy array的list。该list应含有一个形如( input_dim,output_dim)的权重矩阵和一个形如(output_dim,)的偏置向量。
  • border_mode:边界模式,为“valid”或“same”
  • subsample:长为2的tuple,输出对输入的下采样因子,更普遍的称呼是“strides”
  • W_regularizer:施加在权重上的正则项,为WeightRegularizer对象
  • b_regularizer:施加在偏置向量上的正则项,为WeightRegularizer对象
  • activity_regularizer:施加在输出上的正则项,为ActivityRegularizer对象
  • W_constraints:施加在权重上的约束项,为Constraints对象
  • b_constraints:施加在偏置上的约束项,为Constraints对象
  • dim_ordering: ‘th’或‘tf’。
  • bias:布尔值,是否包含偏置向量(即层对输入做线性变换还是仿射变换)
输入shape‘th’模式下,输入形如( samples, channels, rows, cols)的4D张量,‘tf’模式下,输入形如( samples, rows, cols, channels)的4D张量
输出shape‘th’模式下,为形如( samples, nb_filter, new_rows, new_cols)的4D张量,‘tf’模式下,为形如( samples, new_rows, new_cols, nb_filter)的4D张量,输出的行列数可能会因为填充方法而改变
# apply a 3x3 convolution with 64 output filters on a 256x256 image:
model = Sequential()
model.add(Convolution2D(64, 3, 3, border_mode='same', input_shape=(3, 256, 256)))
# now model.output_shape == (None, 64, 256, 256)

1.4. AtrousConvolution2D层

该层对二维输入进行Atrous卷积,也即膨胀卷积或带孔洞的卷积。

1.5. SeparableConvolution2D层

该层是对2D输入的可分离卷积
可分离卷积首先按深度方向进行卷积(对每个输入通道分别卷积),然后逐点进行卷积,将上一步的卷积结果混合到输出通道中。参数 depth_multiplier 控制了在depthwise卷积(第一步)的过程中,每个输入通道信号产生多少个输出通道。直观来说,可分离卷积可以看做讲一个卷积核分解为两个小的卷积核,或看作Inception模块的一种极端情况。当使用该层作为第一层时,应提供 input_shape 参数。
该层目前只能在Tensorflow后端的条件下使用
keras.layers.convolutional.SeparableConvolution2D(nb_filter, nb_row, nb_col, init='glorot_uniform', activation='linear', weights=None, border_mode='valid', subsample=(1, 1), depth_multiplier=1, dim_ordering='default', depthwise_regularizer=None, pointwise_regularizer=None, b_regularizer=None, activity_regularizer=None, depthwise_constraint=None, pointwise_constraint=None, b_constraint=None, bias=True)

1.6. Deconvolution2D层

该层是卷积操作的转置(反卷积)。需要反卷积的情况通常发生在用户想要对一个普通卷积的结果做反方向的变换。

1.7. Convolution3D层

三维卷积对三维的输入进行滑动窗卷积

1.8. Cropping1D层

在时间轴( axis1)上对1D输入(即时间序列)进行裁剪
keras.layers.convolutional.Cropping1D(cropping=(1, 1))

  • cropping:长为2的tuple,指定在序列的首尾要裁剪掉多少个元素

输入shape形如( samples, axis_to_crop, features)的3D张量
输出shape形如( samples, cropped_axis, features)的3D张量

1.9. Cropping2D层

对2D输入(图像)进行裁剪,将在空域维度,即宽和高的方向上裁剪

1.10. Cropping3D层

对3D输入裁剪

1.11. UpSampling1D层

在时间轴上,将每个时间步重复 length 次

1.12. UpSampling2D层 UpSampling3D层

将数据的行和列分别重复size[0]和size[1]次
将数据的三个维度上分别重复size[0]、 size[1]和ize[2]次

1.13. ZeroPadding1D层

对1D输入的首尾端(如时域序列)填充0,以控制卷积以后向量的长度

1.14. ZeroPadding2D层  ZeroPadding3D层

对2D输入(如图片)的边界填充0
将数据的三个维度上填充0

2. 池化层

2.1. MaxPooling1D层

对时域1D信号进行最大值池化

keras.layers.convolutional.MaxPooling1D(pool_length=2, stride=None, border_mode='valid')

  • pool_length:下采样因子,如取2则将输入下采样到一半长度
  • stride:整数或None,步长值
  • border_mode: ‘valid’或者‘same’注意,目前‘same’模式只能在TensorFlow作为后端时使用

输入shape形如( samples, steps, features)的3D张量

输出shape形如( samples, downsampled_steps, features)的3D张量

2.2. MaxPooling2D层  MaxPooling3D层

keras.layers.convolutional.MaxPooling2D(pool_size=(2, 2), strides=None, border_mode='valid', dim_ordering='th')
keras.layers.convolutional.MaxPooling3D(pool_size=(2, 2, 2), strides=None, border_mode='valid', dim_ordering='th')

2.3. AveragePooling1D层 AveragePooling2D层 AveragePooling3D层

对信号进行平均值池化

2.4. GlobalMaxPooling1D层  GlobalMaxPooling2D层

为信号施加全局最大值池化

2.5. GlobalAveragePooling1D层  GlobalAveragePooling2D层

为信号施加全局平均值池化

3. 局部连接层

3.1. LocallyConnected1D层

LocallyConnected1D 层与 Convolution1D 工作方式类似,唯一的区别是不进行权值共享。即施加在不同输入patch的滤波器是不一样的,当使用该层作为模型首层时,需要提供参数 input_dim 或 input_shape 参数。参数含义参考 Convolution1D 。注意该层的 input_shape 必须完全指定,不支持 None
keras.layers.local.LocallyConnected1D(nb_filter, filter_length, init='uniform', activation='linear', weights=None, border_mode='valid', subsample_length=1, W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True, input_dim=None, input_length=None)

3.2. LocallyConnected2D层

LocallyConnected2D 层与 Convolution2D 工作方式类似,唯一的区别是不进行权值共享。

Keras读书笔记----卷积层、池化层相关推荐

  1. keras中的卷积层池化层

    文章目录 卷积层 创建卷积层 卷积层的格式及参数: 卷积层中的参数数量 卷积层的形状 池化层 keras中的最大池化层 参数 卷积层 创建卷积层 首先导入keras中的模块 from keras.la ...

  2. 深度学习笔记(一):卷积层+池化层+激活函数+全连接层

    写在前面:大家好!我是[AI 菌],一枚爱弹吉他的程序员.我热爱AI.热爱分享.热爱开源! 这博客是我对学习的一点总结与记录.如果您也对 深度学习.机器视觉.算法.Python.C++ 感兴趣,可以关 ...

  3. 卷积神经网络——池化层学习——最大池化

    池化层(Pooling layers) 除了卷积层,卷积网络也经常使用池化层来缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性,我们来看一下. 先举一个池化层的例子,然后我们再讨论池化层的必要 ...

  4. cs231n-(7)卷积神经网络:架构,卷积层/池化层

    架构总览 常用的层 卷积层 概述 池化层 归一化层 全连接层 全连接层转为卷积层 卷积网络架构 层模式 层大小设计模式 实例 计算资源考虑 额外资源 卷积神经网络和普通神经网络非常类似.卷积神经网络由 ...

  5. CNN模型中 卷积层 RELU层 池化层 作用及顺序

    卷积层  Convolutional layer 卷积运算的目的是提取输入的不同特征 类似于CV中的滤波,通过滑动窗口来得到特征图像 非线性激活层  Relu f(x)=max(0,x) 非线性激活层 ...

  6. 卷积神经网络 池化层上采样(upsampling、interpolating)、下采样(subsampled、downsampled)是什么?(上采样为放大图像或图像插值、下采样为缩小图像)

    缩小图像:或称为下采样(subsampled)或降采样(downsampled) 主要目的有两个:1.使得图像符合显示区域的大小:2.生成对应图像的缩略图. 放大图像:或称为上采样(upsamplin ...

  7. 深入学习卷积神经网络中卷积层和池化层的意义(转)

    为什么要使用卷积呢? 在传统的神经网络中,比如多层感知机(MLP),其输入通常是一个特征向量:需要人工设计特征,然后将这些特征计算的值组成特征向量,在过去几十年的经验来看,人工找到的特征并不是怎么好用 ...

  8. 深度学习入门 (九):卷积层和池化层的实现

    目录 卷积神经网络 CNN 整体结构 卷积层 全连接层存在的问题 卷积运算 乘积累加运算 偏置 填充 (padding) 步幅 (stride) 小结:卷积层的输出特征图的大小 3 维数据的卷积运算 ...

  9. 卷积神经网络---卷积层、激励层、池化层以及全连接层

    文章目录 概述 卷积神经网络 局部连接+权值共享** 输入层 卷积层 激励层 池化层 全连接层 参考资料 概述 这两天在看论文,涉及到卷积神经网络的知识,之前一直对这块迷迷糊糊.看到了一篇博文写的很好 ...

最新文章

  1. torch 常用函数
  2. 算法导论-排序(四)计数排序(线性时间排序)
  3. php ajax无刷新分页源码,ajax实现无刷新分页(php)
  4. 插入排序详解(Java实现)
  5. 自动基线校正 python_红外光谱的
  6. python基础学习之python操作PDF文件、发送邮件添加附件10
  7. instant java,关于java:Format Instant to String
  8. 2017 linux wine 迅雷,Ubuntu+Wine+迅雷+QQ安装方法
  9. 基于 Console 口访问方式的配置
  10. 无损检测行业市场发展机遇分析及市场规模竞争战略可行性研究预测
  11. 职场人如何制定学习计划?
  12. 关于DAG共识的调研
  13. 香河哪有学计算机编程,香河计算机程序设计员职业资格证书
  14. 一个umi4的项目适配到FireFox60.7.1esr版本上的从头到尾
  15. STM32c8t6串口+蓝牙控制PC13亮灭
  16. 【MXNet学习16】在MXNet中使用Dropout
  17. python改变数组形状_NumPy数组的变形(改变数组形状)
  18. 介绍计算机的英语作文,总算晓得写一篇介绍电脑的英语作文
  19. 软件著作权和高新技术企业的关系
  20. MYSQL创建课程表course_MySQL简单案例之创建学生表、课程表和选课表

热门文章

  1. 外汇天眼:模拟盘赚钱实盘亏损,你中了什么魔咒?
  2. Python语言在地球科学交叉领域中的应用
  3. CAD 二次开发-Handle
  4. (转) Android应用Activity、Dialog、PopWindow、Toast窗口添加机制及源码分析
  5. MATLAB 验证时域和频域卷积定理
  6. ipv6地址概述——深入讲解ipv6地址
  7. 计算机对电影工业的影响的英语作文,2019考研英语作文范文欣赏:电影电视对人们行为的影响...
  8. Python登陆人人网
  9. 微信小程序的基础知识
  10. shell 脚本 练习