首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >keras doc 7 Pooling Connceted Recurrent Embedding Activation

keras doc 7 Pooling Connceted Recurrent Embedding Activation

作者头像
用户1908973
发布2018-07-25 11:25:23
6900
发布2018-07-25 11:25:23
举报
文章被收录于专栏:CreateAMindCreateAMindCreateAMind

相关链接请阅读原文访问。

池化层

MaxPooling1D层

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

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

参数

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

输入shape

  • 形如(samples,steps,features)的3D张量

输出shape

  • 形如(samples,downsampled_steps,features)的3D张量

MaxPooling2D层

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

为空域信号施加最大值池化

参数

  • pool_size:长为2的整数tuple,代表在两个方向(竖直,水平)上的下采样因子,如取(2,2)将使图片在两个维度上均变为原长的一半
  • strides:长为2的整数tuple,或者None,步长值。
  • border_mode:‘valid’或者‘same’
    • 注意,目前‘same’模式只能在TensorFlow作为后端时使用
  • dim_ordering:‘th’或‘tf’。‘th’模式中通道维(如彩色图像的3通道)位于第1个位置(维度从0开始算),而在‘tf’模式中,通道维位于第3个位置。例如128*128的三通道彩色图片,在‘th’模式中input_shape应写为(3,128,128),而在‘tf’模式中应写为(128,128,3),注意这里3出现在第0个位置,因为input_shape不包含样本数的维度,在其内部实现中,实际上是(None,3,128,128)和(None,128,128,3)。默认是image_dim_ordering指定的模式,可在~/.keras/keras.json中查看,若没有设置过则为'tf'。

输入shape

‘th’模式下,为形如(samples,channels, rows,cols)的4D张量

‘tf’模式下,为形如(samples,rows, cols,channels)的4D张量

输出shape

‘th’模式下,为形如(samples,channels, pooled_rows, pooled_cols)的4D张量

‘tf’模式下,为形如(samples,pooled_rows, pooled_cols,channels)的4D张量


MaxPooling3D层

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

为3D信号(空域或时空域)施加最大值池化

本层目前只能在使用Theano为后端时可用

参数

  • pool_size:长为3的整数tuple,代表在三个维度上的下采样因子,如取(2,2,2)将使信号在每个维度都变为原来的一半长。
  • strides:长为3的整数tuple,或者None,步长值。
  • border_mode:‘valid’或者‘same’
  • dim_ordering:‘th’或‘tf’。‘th’模式中通道维(如彩色图像的3通道)位于第1个位置(维度从0开始算),而在‘tf’模式中,通道维位于第4个位置。默认是image_dim_ordering指定的模式,可在~/.keras/keras.json中查看,若没有设置过则为'tf'。

输入shape

‘th’模式下,为形如(samples, channels, len_pool_dim1, len_pool_dim2, len_pool_dim3)的5D张量

‘tf’模式下,为形如(samples, len_pool_dim1, len_pool_dim2, len_pool_dim3,channels, )的5D张量

输出shape

‘th’模式下,为形如(samples, channels, pooled_dim1, pooled_dim2, pooled_dim3)的5D张量

‘tf’模式下,为形如(samples, pooled_dim1, pooled_dim2, pooled_dim3,channels,)的5D张量


AveragePooling1D层

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

对时域1D信号进行平均值池化

参数

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

输入shape

  • 形如(samples,steps,features)的3D张量

输出shape

  • 形如(samples,downsampled_steps,features)的3D张量

AveragePooling2D层

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

为空域信号施加平均值池化

参数

  • pool_size:长为2的整数tuple,代表在两个方向(竖直,水平)上的下采样因子,如取(2,2)将使图片在两个维度上均变为原长的一半
  • strides:长为2的整数tuple,或者None,步长值。
  • border_mode:‘valid’或者‘same’
    • 注意,目前‘same’模式只能在TensorFlow作为后端时使用

dim_ordering:‘th’或‘tf’。‘th’模式中通道维(如彩色图像的3通道)位于第1个位置(维度从0开始算),而在‘tf’模式中,通道维位于第3个位置。例如128*128的三通道彩色图片,在‘th’模式中input_shape应写为(3,128,128),而在‘tf’模式中应写为(128,128,3),注意这里3出现在第0个位置,因为input_shape不包含样本数的维度,在其内部实现中,实际上是(None,3,128,128)和(None,128,128,3)。默认是image_dim_ordering指定的模式,可在~/.keras/keras.json中查看,若没有设置过则为'tf'。

输入shape

‘th’模式下,为形如(samples,channels, rows,cols)的4D张量

‘tf’模式下,为形如(samples,rows, cols,channels)的4D张量

输出shape

‘th’模式下,为形如(samples,channels, pooled_rows, pooled_cols)的4D张量

‘tf’模式下,为形如(samples,pooled_rows, pooled_cols,channels)的4D张量


AveragePooling3D层

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

为3D信号(空域或时空域)施加平均值池化

本层目前只能在使用Theano为后端时可用

参数

  • pool_size:长为3的整数tuple,代表在三个维度上的下采样因子,如取(2,2,2)将使信号在每个维度都变为原来的一半长。
  • strides:长为3的整数tuple,或者None,步长值。
  • border_mode:‘valid’或者‘same’
  • dim_ordering:dim_ordering:‘th’或‘tf’。‘th’模式中通道维(如彩色图像的3通道)位于第1个位置(维度从0开始算),而在‘tf’模式中,通道维位于第4个位置。默认是image_dim_ordering指定的模式,可在~/.keras/keras.json中查看,若没有设置过则为'tf'。

输入shape

‘th’模式下,为形如(samples, channels, len_pool_dim1, len_pool_dim2, len_pool_dim3)的5D张量

‘tf’模式下,为形如(samples, len_pool_dim1, len_pool_dim2, len_pool_dim3,channels, )的5D张量

输出shape

‘th’模式下,为形如(samples, channels, pooled_dim1, pooled_dim2, pooled_dim3)的5D张量

‘tf’模式下,为形如(samples, pooled_dim1, pooled_dim2, pooled_dim3,channels,)的5D张量


GlobalMaxPooling1D层

keras.layers.pooling.GlobalMaxPooling1D()

对于时间信号的全局最大池化

输入shape

  • 形如(samples,steps,features)的3D张量

输出shape

  • 形如(samples, features)的2D张量

GlobalAveragePooling1D层

keras.layers.pooling.GlobalAveragePooling1D()

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

输入shape

  • 形如(samples,steps,features)的3D张量

输出shape

  • 形如(samples, features)的2D张量

GlobalMaxPooling2D层

keras.layers.pooling.GlobalMaxPooling2D(dim_ordering='default')

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

参数

  • dim_ordering:‘th’或‘tf’。‘th’模式中通道维(如彩色图像的3通道)位于第1个位置(维度从0开始算),而在‘tf’模式中,通道维位于第3个位置。例如128*128的三通道彩色图片,在‘th’模式中input_shape应写为(3,128,128),而在‘tf’模式中应写为(128,128,3),注意这里3出现在第0个位置,因为input_shape不包含样本数的维度,在其内部实现中,实际上是(None,3,128,128)和(None,128,128,3)。默认是image_dim_ordering指定的模式,可在~/.keras/keras.json中查看,若没有设置过则为'tf'。

输入shape

‘th’模式下,为形如(samples,channels, rows,cols)的4D张量

‘tf’模式下,为形如(samples,rows, cols,channels)的4D张量

输出shape

形如(nb_samples, channels)的2D张量


GlobalAveragePooling2D层

keras.layers.pooling.GlobalAveragePooling2D(dim_ordering='default')

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

参数

  • dim_ordering:‘th’或‘tf’。‘th’模式中通道维(如彩色图像的3通道)位于第1个位置(维度从0开始算),而在‘tf’模式中,通道维位于第3个位置。例如128*128的三通道彩色图片,在‘th’模式中input_shape应写为(3,128,128),而在‘tf’模式中应写为(128,128,3),注意这里3出现在第0个位置,因为input_shape不包含样本数的维度,在其内部实现中,实际上是(None,3,128,128)和(None,128,128,3)。默认是image_dim_ordering指定的模式,可在~/.keras/keras.json中查看,若没有设置过则为'tf'。

输入shape

‘th’模式下,为形如(samples,channels, rows,cols)的4D张量

‘tf’模式下,为形如(samples,rows, cols,channels)的4D张量

输出shape

形如(nb_samples, channels)的2D张量

局部连接层LocallyConnceted

LocallyConnected1D层

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)

LocallyConnected1D层与Convolution1D工作方式类似,唯一的区别是不进行权值共享。即施加在不同输入patch的滤波器是不一样的,当使用该层作为模型首层时,需要提供参数input_diminput_shape参数。参数含义参考Convolution1D。注意该层的input_shape必须完全指定,不支持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 unshared weight convolution 1d of length 3 to a sequence with# 10 timesteps, with 64 output filtersmodel = Sequential()
model.add(LocallyConnected1D(64, 3, input_shape=(10, 32)))# now model.output_shape == (None, 8, 64)# add a new conv1d on topmodel.add(LocallyConnected1D(32, 3))# now model.output_shape == (None, 6, 32)

LocallyConnected2D层

keras.layers.local.LocallyConnected2D(nb_filter, nb_row, nb_col, init='glorot_uniform', activation='linear', weights=None, border_mode='valid', subsample=(1, 1), dim_ordering='default', W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True)

LocallyConnected2D层与Convolution2D工作方式类似,唯一的区别是不进行权值共享。即施加在不同输入patch的滤波器是不一样的,当使用该层作为模型首层时,需要提供参数input_diminput_shape参数。参数含义参考Convolution2D。注意该层的input_shape必须完全指定,不支持None

参数

  • 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’。‘th’模式中通道维(如彩色图像的3通道)位于第1个位置(维度从0开始算),而在‘tf’模式中,通道维位于第3个位置。例如128*128的三通道彩色图片,在‘th’模式中input_shape应写为(3,128,128),而在‘tf’模式中应写为(128,128,3),注意这里3出现在第0个位置,因为input_shape不包含样本数的维度,在其内部实现中,实际上是(None,3,128,128)和(None,128,128,3)。默认是image_dim_ordering指定的模式,可在~/.keras/keras.json中查看,若没有设置过则为'tf'。
  • bias:布尔值,是否包含偏置向量(即层对输入做线性变换还是仿射变换)

输入shape

‘th’模式下,输入形如(samples,channels,rows,cols)的4D张量

‘tf’模式下,输入形如(samples,rows,cols,channels)的4D张量

注意这里的输入shape指的是函数内部实现的输入shape,而非函数接口应指定的input_shape,请参考下面提供的例子。

输出shape

‘th’模式下,为形如(samples,nb_filter, new_rows, new_cols)的4D张量

‘tf’模式下,为形如(samples,new_rows, new_cols,nb_filter)的4D张量

输出的行列数可能会因为填充方法而改变

例子

# apply a 3x3 unshared weights convolution with 64 output filters on a 32x32 image:model = Sequential()
model.add(LocallyConnected2D(64, 3, 3, input_shape=(3, 32, 32)))# now model.output_shape == (None, 64, 30, 30)# notice that this layer will consume (30*30)*(3*3*3*64) + (30*30)*64 parameters# add a 3x3 unshared weights convolution on top, with 32 output filters:model.add(LocallyConnected2D(32, 3, 3))# now model.output_shape == (None, 32, 28, 28)

递归层Recurrent

Recurrent层

keras.layers.recurrent.Recurrent(weights=None, return_sequences=False, go_backwards=False, stateful=False, unroll=False, consume_less='cpu', input_dim=None, input_length=None)

这是递归层的抽象类,请不要在模型中直接应用该层(因为它是抽象类,无法实例化任何对象)。请使用它的子类LSTMSimpleRNN

所有的递归层(LSTM,GRU,SimpleRNN)都服从本层的性质,并接受本层指定的所有关键字参数。

参数

  • weights:numpy array的list,用以初始化权重。该list形如[(input_dim, output_dim),(output_dim, output_dim),(output_dim,)]
  • return_sequences:布尔值,默认False,控制返回类型。若为True则返回整个序列,否则仅返回输出序列的最后一个输出
  • go_backwards:布尔值,默认为False,若为True,则逆向处理输入序列
  • stateful:布尔值,默认为False,若为True,则一个batch中下标为i的样本的最终状态将会用作下一个batch同样下标的样本的初始状态。
  • unroll:布尔值,默认为False,若为True,则递归层将被展开,否则就使用符号化的循环。当使用TensorFlow为后端时,递归网络本来就是展开的,因此该层不做任何事情。层展开会占用更多的内存,但会加速RNN的运算。层展开只适用于短序列。
  • consume_less:‘cpu’或‘mem’之一。若设为‘cpu’,则RNN将使用较少、较大的矩阵乘法来实现,从而在CPU上会运行更快,但会更消耗内存。如果设为‘mem’,则RNN将会较多的小矩阵乘法来实现,从而在GPU并行计算时会运行更快(但在CPU上慢),并占用较少内存。
  • input_dim:输入维度,当使用该层为模型首层时,应指定该值(或等价的指定input_shape)
  • input_length:当输入序列的长度固定时,该参数为输入序列的长度。当需要在该层后连接Flatten层,然后又要连接Dense层时,需要指定该参数,否则全连接的输出无法计算出来。注意,如果递归层不是网络的第一层,你需要在网络的第一层中指定序列的长度,如通过input_shape指定。

输入shape

形如(samples,timesteps,input_dim)的3D张量

输出shape

如果return_sequences=True:返回形如(samples,timesteps,output_dim)的3D张量

否则,返回形如(samples,output_dim)的2D张量

例子

# as the first layer in a Sequential modelmodel = Sequential()
model.add(LSTM(32, input_shape=(10, 64)))# now model.output_shape == (None, 10, 32)# note: `None` is the batch dimension.# the following is identical:model = Sequential()
model.add(LSTM(32, input_dim=64, input_length=10))# for subsequent layers, not need to specify the input size:model.add(LSTM(16))

屏蔽输入数据(Masking)

递归层支持通过时间步变量对输入数据进行Masking,如果想将输入数据的一部分屏蔽掉,请使用Embedding层并将参数mask_zero设为True

TensorFlow警告

目前为止,当使用TensorFlow作为后端时,序列的时间步数目必须在网络中指定。通过input_length(如果网络首层是递归层)或完整的input_shape来指定该值。

使用状态RNN的注意事项

可以将RNN设置为‘stateful’,意味着训练时每个batch的状态都会被重用于初始化下一个batch的初始状态。状态RNN假设连续的两个batch之中,相同下标的元素有一一映射关系。

要启用状态RNN,请在实例化层对象时指定参数stateful=True,并指定模型使用固定大小的batch:通过在模型的第一层传入batch_input_shape=(...)来实现。该参数应为包含batch大小的元组,例如(32,10,100)代表每个batch的大小是32.

如果要将递归层的状态重置,请调用.reset_states(),对模型调用将重置模型中所有状态RNN的状态。对单个层调用则只重置该层的状态。

以TensorFlow作为后端时使用dropout的注意事项

当使用TensorFlow作为后端时,如果要在递归层使用dropout,需要同上面所述的一样指定好固定的batch大小


SimpleRNN层

keras.layers.recurrent.SimpleRNN(output_dim, init='glorot_uniform', inner_init='orthogonal', activation='tanh', W_regularizer=None, U_regularizer=None, b_regularizer=None, dropout_W=0.0, dropout_U=0.0)

全连接RNN网络,RNN的输出会被回馈到输入

参数

  • output_dim:内部投影和输出的维度
  • init:初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的Theano函数。
  • inner_init:内部单元的初始化方法
  • activation:激活函数,为预定义的激活函数名(参考激活函数
  • W_regularizer:施加在权重上的正则项,为WeightRegularizer对象
  • U_regularizer:施加在递归权重上的正则项,为WeightRegularizer对象
  • b_regularizer:施加在偏置向量上的正则项,为WeightRegularizer对象
  • dropout_W:0~1之间的浮点数,控制输入单元到输入门的连接断开比例
  • dropout_U:0~1之间的浮点数,控制输入单元到递归连接的断开比例

参考文献


GRU层

keras.layers.recurrent.GRU(output_dim, init='glorot_uniform', inner_init='orthogonal', activation='tanh', inner_activation='hard_sigmoid', W_regularizer=None, U_regularizer=None, b_regularizer=None, dropout_W=0.0, dropout_U=0.0)

门限递归单元(详见参考文献)

参数

  • output_dim:内部投影和输出的维度
  • init:初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的Theano函数。
  • inner_init:内部单元的初始化方法
  • activation:激活函数,为预定义的激活函数名(参考激活函数
  • inner_activation:内部单元激活函数
  • W_regularizer:施加在权重上的正则项,为WeightRegularizer对象
  • U_regularizer:施加在递归权重上的正则项,为WeightRegularizer对象
  • b_regularizer:施加在偏置向量上的正则项,为WeightRegularizer对象
  • dropout_W:0~1之间的浮点数,控制输入单元到输入门的连接断开比例
  • dropout_U:0~1之间的浮点数,控制输入单元到递归连接的断开比例

参考文献


LSTM层

keras.layers.recurrent.LSTM(output_dim, init='glorot_uniform', inner_init='orthogonal', forget_bias_init='one', activation='tanh', inner_activation='hard_sigmoid', W_regularizer=None, U_regularizer=None, b_regularizer=None, dropout_W=0.0, dropout_U=0.0)

Keras长短期记忆模型,关于此算法的详情,请参考本教程

参数

  • output_dim:内部投影和输出的维度
  • init:初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的Theano函数。
  • inner_init:内部单元的初始化方法
  • forget_bias_init:遗忘门偏置的初始化函数,Jozefowicz et al.建议初始化为全1元素
  • activation:激活函数,为预定义的激活函数名(参考激活函数
  • inner_activation:内部单元激活函数
  • W_regularizer:施加在权重上的正则项,为WeightRegularizer对象
  • U_regularizer:施加在递归权重上的正则项,为WeightRegularizer对象
  • b_regularizer:施加在偏置向量上的正则项,为WeightRegularizer对象
  • dropout_W:0~1之间的浮点数,控制输入单元到输入门的连接断开比例
  • dropout_U:0~1之间的浮点数,控制输入单元到递归连接的断开比例

参考文献

嵌入层 Embedding

Embedding层

keras.layers.embeddings.Embedding(input_dim, output_dim, init='uniform', input_length=None, W_regularizer=None, activity_regularizer=None, W_constraint=None, mask_zero=False, weights=None, dropout=0.0)

嵌入层将正整数(下标)转换为具有固定大小的向量,如[[4],[20]]->[[0.25,0.1],[0.6,-0.2]]

Embedding层只能作为模型的第一层

参数

  • input_dim:大或等于0的整数,字典长度,即输入数据最大下标+1
  • output_dim:大于0的整数,代表全连接嵌入的维度
  • init:初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的Theano函数。该参数仅在不传递weights参数时有意义。
  • activation:激活函数,为预定义的激活函数名(参考激活函数),或逐元素(element-wise)的Theano函数。如果不指定该参数,将不会使用任何激活函数(即使用线性激活函数:a(x)=x)
  • weights:权值,为numpy array的list。该list应仅含有一个如(input_dim,output_dim)的权重矩阵
  • W_regularizer:施加在权重上的正则项,为WeightRegularizer对象
  • W_constraints:施加在权重上的约束项,为Constraints对象
  • mask_zero:布尔值,确定是否将输入中的‘0’看作是应该被忽略的‘填充’(padding)值,该参数在使用递归层处理变长输入时有用。设置为True的话,模型中后续的层必须都支持masking,否则会抛出异常
  • input_length:当输入序列的长度固定时,该值为其长度。如果要在该层后接Flatten层,然后接Dense层,则必须指定该参数,否则Dense层的输出维度无法自动推断。
  • dropout:0~1的浮点数,代表要断开的嵌入比例,

输入shape

形如(samples,sequence_length)的2D张量

输出shape

形如(samples, sequence_length, output_dim)的3D张量

参考文献

高级激活层Advanced Activation

LeakyReLU层

keras.layers.advanced_activations.LeakyReLU(alpha=0.3)

LeakyRelU是修正线性单元(Rectified Linear Unit,ReLU)的特殊版本,当不激活时,LeakyReLU仍然会有非零输出值,从而获得一个小梯度,避免ReLU可能出现的神经元“死亡”现象。即,f(x)=alpha * x for x < 0, f(x) = x for x>=0

参数

  • alpha:大于0的浮点数,代表激活函数图像中第三象限线段的斜率

输入shape

任意,当使用该层为模型首层时需指定input_shape参数

输出shape

与输入相同


PReLU层

keras.layers.advanced_activations.PReLU(init='zero', weights=None)

该层为参数化的ReLU(Parametric ReLU),表达式是:f(x) = alpha * x for x < 0,f(x) = x for x>=0,此处的alpha为一个与xshape相同的可学习的参数向量。

参数

  • init:alpha的初始化函数
  • weights:alpha的初始化值,为具有单个numpy array的list

输入shape

任意,当使用该层为模型首层时需指定input_shape参数

输出shape

与输入相同

参考文献


ELU层

keras.layers.advanced_activations.ELU(alpha=1.0)

ELU层是指数线性单元(Exponential Linera Unit),表达式为: 该层为参数化的ReLU(Parametric ReLU),表达式是:f(x) = alpha * (exp(x) - 1.) for x < 0, f(x) = x for x>=0

参数

  • alpha:控制负因子的参数

输入shape

任意,当使用该层为模型首层时需指定input_shape参数

输出shape

与输入相同

参考文献


ParametricSoftplus层

keras.layers.advanced_activations.ParametricSoftplus(alpha_init=0.2, beta_init=5.0, weights=None)

该层是参数化的Softplus,表达式是:f(x) = alpha * log(1 + exp(beta * x))

参数

  • alpha_init:浮点数,alpha的初始值
  • beta_init:浮点数,beta的初始值
  • weights:初始化权重,为含有两个numpy array的list

输入shape

任意,当使用该层为模型首层时需指定input_shape参数

输出shape

与输入相同

参考文献


ThresholdedReLU层

keras.layers.advanced_activations.ThresholdedReLU(theta=1.0)

该层是带有门限的ReLU,表达式是:f(x) = x for x > theta,f(x) = 0 otherwise

参数

  • theata:大或等于0的浮点数,激活门限位置

输入shape

任意,当使用该层为模型首层时需指定input_shape参数

输出shape

与输入相同

参考文献



SReLU层

keras.layers.advanced_activations.SReLU(t_left_init='zero', a_left_init='glorot_uniform', t_right_init='glorot_uniform', a_right_init='one')

该层是S形的ReLU

参数

  • t_left_init:左侧截断初始化函数
  • a_left_init:左侧斜率初始化函数
  • t_right_init:右侧截断初始化函数
  • a_right_init:右侧斜率初始化函数

输入shape

任意,当使用该层为模型首层时需指定input_shape参数

输出shape

与输入相同

参考文献

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-10-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CreateAMind 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 池化层
    • MaxPooling1D层
      • 参数
      • 输入shape
      • 输出shape
    • MaxPooling2D层
      • 参数
      • 输入shape
      • 输出shape
    • MaxPooling3D层
      • 参数
      • 输入shape
      • 输出shape
    • AveragePooling1D层
      • 参数
      • 输入shape
      • 输出shape
    • AveragePooling2D层
      • 参数
      • 输入shape
      • 输出shape
    • AveragePooling3D层
      • 参数
      • 输入shape
      • 输出shape
    • GlobalMaxPooling1D层
      • 输入shape
      • 输出shape
    • GlobalAveragePooling1D层
      • 输入shape
      • 输出shape
    • GlobalMaxPooling2D层
      • 参数
      • 输入shape
      • 输出shape
    • GlobalAveragePooling2D层
      • 参数
      • 输入shape
      • 输出shape
  • 局部连接层LocallyConnceted
    • LocallyConnected1D层
      • 参数
      • 输入shape
      • 输出shape
      • 例子
    • LocallyConnected2D层
      • 参数
      • 输入shape
      • 输出shape
      • 例子
  • 递归层Recurrent
    • Recurrent层
      • 参数
      • 输入shape
      • 输出shape
      • 例子
      • 屏蔽输入数据(Masking)
      • TensorFlow警告
      • 使用状态RNN的注意事项
      • 以TensorFlow作为后端时使用dropout的注意事项
    • SimpleRNN层
      • 参数
      • 参考文献
    • GRU层
      • 参数
      • 参考文献
    • LSTM层
      • 参数
      • 参考文献
  • 嵌入层 Embedding
    • Embedding层
      • 参数
      • 输入shape
      • 输出shape
      • 参考文献
  • 高级激活层Advanced Activation
    • LeakyReLU层
      • 参数
      • 输入shape
      • 输出shape
    • PReLU层
      • 参数
      • 输入shape
      • 输出shape
      • 参考文献
    • ELU层
      • 参数
      • 输入shape
      • 输出shape
      • 参考文献
    • ParametricSoftplus层
      • 参数
      • 输入shape
      • 输出shape
      • 参考文献
    • ThresholdedReLU层
      • 参数
      • 输入shape
      • 输出shape
      • 参考文献
    • SReLU层
      • 参数
      • 输入shape
      • 输出shape
      • 参考文献
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档