Keras文档学习04.网络层:常用层

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fantacy10000/article/details/83218310

关键词:DenseActivationDropoutFlattenReshape、Permute、RepeatVector、Lambda、Masking
原文地址:文档对应地址

一.关于Keras的层(Layer)
【1】所有的Keras层对象都有如下方法:
1.layer.get_weights():返回层的权重(numpy array)
2.layer.set_weights(weights):从numpy array中将权重加载到该层中,要求numpy array的形状与* layer.get_weights()的形状相同
3.layer.get_config():返回当前层配置信息的字典,层也可以借由配置信息重构:

【2】如果该层只有一个计算节点,则可以使用:
layer.input
layer.output
layer.input_shape
layer.output_shape

【3】如果该层有多个计算节点(参考层计算节点和共享层)。可以使用下面的方法(其实就是要指定具体的计算节点序号才能进行操作,否则会产生歧义,出现错误):
layer.get_input_at(node_index)
layer.get_output_at(node_index)
layer.get_input_shape_at(node_index)
layer.get_output_shape_at(node_index)

#***************************************************************************************************************************************#
二.常用层
1.Dense层(全连接层)

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)

常用参数介绍:
【1】units:大于0的整数,代表该层的输出维度。
【2】activation:激活函数,为预定义的激活函数名(参考激活函数),或逐元素(element-wise)的Theano函数。如果不指定该参数,将不会使用任何激活函数(即使用线性激活函数:a(x)=x)
【3】use_bias:布尔值,是否使用偏置项

输入:形如(batch_size, …, input_dim)的nD张量,最常见的情况为(batch_size, input_dim)的2D张量;
输出:形如(batch_size, …, units)的nD张量,最常见的情况为(batch_size, units)的2D张量;

2.Activation层

keras.layers.core.Activation(activation)

参数:activation:将要使用的激活函数,为预定义激活函数名或一个Tensorflow/Theano的函数
输入shape:任意,当使用激活层作为第一层时,要指定input_shape
输出shape:与输入shape相同

3.Dropout层

keras.layers.core.Dropout(rate, noise_shape=None, seed=None)

Dropout将在训练过程中每次更新参数时按一定概率(rate)随机断开输入神经元,Dropout层用于防止过拟合。
参数:
【1】rate:0~1的浮点数,控制需要断开的神经元的比例
【2】noise_shape:整数张量,为将要应用在输入上的二值Dropout mask的shape,例如你的输入为(batch_size, timesteps, features),并且你希望在各个时间步上的Dropout mask都相同,则可传入noise_shape=(batch_size, 1, features)。
【3】seed:整数,使用的随机数种子

4.Flatten层

keras.layers.core.Flatten()

Flatten层用来将输入“压平”,即把多维的输入一维化,常用在从卷积层到全连接层的过渡。Flatten不影响batch的大小。

5.Reshape层

keras.layers.core.Reshape(target_shape)

参数:target_shape:目标shape,为整数的tuple,不包含样本数目的维度(batch大小)

6.Permute层

keras.layers.core.Permute(dims)

Permute层将输入的维度按照给定模式进行重排,例如,当需要将RNN和CNN网络连接时,可能会用到该层。

7.RepeatVector层

keras.layers.core.RepeatVector(n)

作用:将输入重复n次

8.Lambda层

keras.layers.core.Lambda(function, output_shape=None, mask=None, arguments=None)

作用:本函数用以对上一层的输出施以任何Theano/TensorFlow表达式

9.ActivityRegularizer层

keras.layers.core.ActivityRegularization(l1=0.0, l2=0.0)

作用:经过本层的数据不会有任何变化,但会基于其激活值更新损失函数值

10.Masking层

keras.layers.core.Masking(mask_value=0.0)

作用:使用给定的值对输入的序列信号进行“屏蔽”,用以定位需要跳过的时间步

猜你喜欢

转载自blog.csdn.net/fantacy10000/article/details/83218310
今日推荐