10-1 Keras深入-常用层
常用层对应于core模块,core内部定义了一系列常用的网络层,包括全连接、激活层等
【Dense层】
1 keras.layers.core.Dense(units, 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)
Dense就是常用的全连接层,所实现的运算是output = activation(dot(input, kernel)+bias)
。
其中activation
是逐元素计算的激活函数,kernel
是本层的权值矩阵,bias
为偏置向量,只有当use_bias=True
才会添加。
参数:
-
units:大于0的整数,代表该层的输出维度。
-
activation:激活函数,为预定义的激活函数名或逐元素。如果不指定该参数,将不会使用任何激活函数(即使用线性激活函数:a(x)=x)
-
use_bias: 布尔值,是否使用偏置项
-
kernel_initializer:权值初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的初始化器。
-
bias_initializer:偏置向量初始化方法,为预定义初始化方法名的字符串,或用于初始化偏置向量的初始化器。
-
kernel_regularizer:施加在权重上的正则项
-
bias_regularizer:施加在偏置向量上的正则项
-
activity_regularizer:施加在输出上的正则项
-
kernel_constraints:施加在权重上的约束项
-
bias_constraints:施加在偏置上的约束项
输入:张量
输出:张量
【Activation层】:激活层对一个层的输出施加激活函数
1 keras.layers.core.Activation(activation)
参数:
activation :将要使用的激活函数,为预定义激活函数名或一个Tensorflow/Theano的函数
输入shape:
任意,当使用激活层作为第一层时,要指定input_shape
输出shape:
与输入shape相同
【Dropout层】:为输入数据施加Dropout。Dropout将在训练过程中每次更新参数时按一定概率(rate)随机断开输入神经元,Dropout层用于防止过拟合。
1 keras.layers.core.Dropout(rate, noise_shape=None, seed=None)
参数
-
rate:0~1的浮点数,控制需要断开的神经元的比例
-
noise_shape:整数张量,为将要应用在输入上的二值Dropout mask的shape,例如你的输入为(batch_size, timesteps, features),并且你希望在各个时间步上的Dropout mask都相同,则可传入noise_shape=(batch_size, 1, features)。
-
seed:整数,使用的随机数种子
【Flatten层】:Flatten层用来将输入“压平”,即把多维的输入一维化,常用在从卷积层到全连接层的过渡。Flatten不影响batch的大小。
1 keras.layers.core.Flatten()
【Reshape层】:用来将输入shape转换为特定的shape
1 keras.layers.core.Reshape(target_shape)
【Permute层】:Permute层将输入的维度按照给定模式进行重排,例如,当需要将RNN和CNN网络连接时,可能会用到该层。
1 keras.layers.core.Permute(dims)
【RepeatVector层】:RepeatVector层将输入重复n次
1 keras.layers.core.RepeatVector(n)
【Lambda层】:本函数用以对上一层的输出施以任何Theano/TensorFlow表达式
1 keras.layers.core.Lambda(function, output_shape=None, mask=None, arguments=None)
【ActivityRegularizer层】:经过本层的数据不会有任何变化,但会基于其激活值更新损失函数值
1 keras.layers.core.ActivityRegularization(l1=0.0, l2=0.0)
【Masking层】:使用给定的值对输入的序列信号进行“屏蔽”,用以定位需要跳过的时间步
1 keras.layers.core.Masking(mask_value=0.0)