keras中文文档 keras( 五 )


各层之间是依次顺序的线性关系,在第k层和第k+1层之间可以加上各种元素来构造神经网络 。
通用模型可以用来设计非常复杂、 任意拓扑结构的神经网络,例如有向无环网络、 共享层网络等 。
Keras中的重要对象
常用的激活函数、 参数初始化方法、 正则化方法等 。
在Keras中使用激活对象有两种方法: 一是单独定义一个激活层; 二是在前置层里面通过激活选项来定义所需的激活函数 。
1、model.add(Dense(64,input)_shape=(784,))
model.add(Activation('tanh'))
2、model.add(Dense(64,input_shape=(784,),activation='tanh'))
初始化对象
初始化对象(Initializer) 用于随机设定网络层激活函数中的权重值或者偏置项的初始值,包括kernel_initializer和bias_initializer 。
正则化对象
在神经网络中也提供了正则化的手段,分别应用于权重参数、 偏置项以及激活函数,对应的选项分别是kernel_regularizer、bias_reuglarizier和activity_regularizer 。
Keras中的网络层构造
核心层(Core Layer) 是构成神经网络最常用的网络层的集合,包括: 全连接层、 激活层、放弃层、 扁平化层、 重构层、 排列层、 向量反复层、 Lambda层、 激活值正则化层、 掩盖层 。所有的层都包含一个输入端和一个输出端,中间包含激活函数以及其他相关参数等.
全连接层 。在神经网络中最常见的网络层就是全连接层,在这个层中实现对神经网络里面的神经元的激活
激活层 。激活层是对上一层的输出应用激活函数的网络层,这是除应用activation选项之外,另一种指定激活函数的方式 。其用法很简单,只要在参数中指明所需的激活函数即可.
放弃层 。放弃层(Dropout) 是对该层的输入向量应用放弃策略 。在模型训练更新参数的步骤中,网络的某些隐含层节点按照一定比例随机设置为不更新状态,但是权重仍然保留,从而防止过度拟合 。
扁平化层 。扁化层(Flatten) 是将一个维度大于或等于3的高维矩阵按照设定“压扁”为一个二维的低维矩阵 。其压缩方法是保留第一个维度的大小,然后将所有剩下的数据压缩到第二个维度中,因此第二个维度的大小是原矩阵第二个维度之后所有维度大小的乘积 。这里第一个维度通常是每次迭代所需的小批量样本数量,而压缩后的第二个维度就是表达原图像所需的向量长度 。
重构层 。重构层(Reshape) 的功能和Numpy的Reshape方法一样,将一定维度的多维矩阵重新排列构造为一个新的保持同样元素数量但是不同维度尺寸的矩阵 。其参数为一个元组(tuple),指定输出向量的维度尺寸,最终的向量输出维度的第一个维度的尺寸是数据批量的大小,从第二个维度开始指定输出向量的维度大小 。
排列层 。排列层(Permute) 按照给定的模式来排列输入向量的维度 。这个方法在连接卷积网络和时间递归网络的时候非常有用 。其参数是输入矩阵的维度编号在输出矩阵中的位置 。
向量反复层 。顾名思义,向量反复层就是将输入矩阵重复多次 。
model.add(Dense(64,input_dim=(784,)))
model.add(RepeatVector(3))
在第一句中,全连接层的输入矩阵是一个有784个元素的向量,输出向量是一个维度为(one,64) 的矩阵; 而第二句将该矩阵反复3次,从而变成维度为(None,3,64) 的多维矩阵,反复的次数构成第二个维度,第一个维度永远是数据批量的大小 。
Lambda层 。Lambda层可以将任意表达式包装成一个网络层对象 。参数就是表达式,一般是一个函数,可以是一个自定义函数,也可以是任意已有的函数 。
激活值正则化层 。这个网络层的作用是对输入的损失函数更新正则化 。
掩盖层 。该网络层主要使用在跟时间有关的模型中,比如LSTM 。其作用是输入张量的时间步,在给定位置使用指定的数值进行“屏蔽”,用以定位需要跳过的时间步 。
卷积层
卷积操作分为一维、 二维和三维,对应的方法分别是Conv1D、 Conv2D和Conv3D 。
Conv1D、 Conv2D和Conv3D的选项几乎相同 。
filters: 卷积滤子输出的维度,要求整数 。
kernel_size: 卷积核的空域或时域窗长度 。要求是整数或整数的列表,或者是元组 。如果是单一整数,则应用于所有适用的维度 。
strides: 卷积在宽或者高维度的步长 。要求是整数或整数的列表,或者是元组 。如果是单一整数,则应用于所有适用的维度 。如果设定步长不为1,则dilation_rate选项的取值必须为1 。
padding: 补齐策略,取值为valid、 same或causal 。causal将产生因果(膨胀的) 卷积,即output[t]不依赖于input[t+1: ],在不能违反时间顺序的时序信号建模时有用 。valid代表只进行有效的卷积,即对边界数据不处理 。same代表保留边界处的卷积结果,通常会导致输出shape与输入shape相同 。

秒懂生活扩展阅读