Keras文档学习05.常用的网络层介绍

关键词: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.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.Activation(activation)

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

3.Dropout层
keras.layers.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.Flatten()

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

5.Reshape层
keras.layers.Reshape(target_shape)

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

6.Permute层
keras.layers.Permute(dims)

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

7.RepeatVector层
keras.layers.RepeatVector(n)

作用:将输入重复n次

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

作用:本函数用以对上一层的输出施以任何Theano/TensorFlow表达式,将任意表达式封装为 Layer 对象。

9.ActivityRegularizer层
keras.layers.ActivityRegularization(l1=0.0, l2=0.0)

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

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

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

11.Input层
keras.engine.input_layer.Input()

作用:Input() 用于实例化 Keras 张量。
参数:
【1】shape: 一个尺寸元组(整数),不包含批量大小。 例如,shape=(32,) 表明期望的输入是按批次的 32 维向量。
【2】batch_shape: 一个尺寸元组(整数),包含批量大小。 例如,batch_shape=(10, 32) 表明期望的输入是 10 个 32 维向量。 batch_shape=(None, 32) 表明任意批次大小的 32 维向量。
【3】name: 一个可选的层的名称的字符串。 在一个模型中应该是唯一的(不可以重用一个名字两次)。 如未提供,将自动生成。
【4】dtype: 输入所期望的数据类型,字符串表示 (float32, float64, int32…)
【5】sparse: 一个布尔值,指明需要创建的占位符是否是稀疏的。
【6】tensor: 可选的可封装到 Input 层的现有张量。 如果设定了,那么这个层将不会创建占位符张量。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值