Keras学习笔记8——keras.layers.Activation

目录

  • 激活函数的用法
  • 预定义激活函数
    • softmax
    • elu
    • selu
    • softplus
    • softsign
    • relu
    • tanh
    • sigmoid
    • hard_sigmoid
    • exponential
    • linear
  • 高级激活函数

来源

激活函数的用法

激活函数可以通过设置单独的激活层实现,也可以在构造层对象时通过传递 activation 参数实现:

from keras.layers import Activation, Dense

model.add(Dense(64))
model.add(Activation('tanh'))
# 等价于:
model.add(Dense(64, activation='tanh'))

也可以通过传递一个逐元素运算的 Theano/TensorFlow/CNTK 函数来作为激活函数:

from keras import backend as K

model.add(Dense(64, activation=K.tanh))
model.add(Activation(K.tanh))

预定义激活函数

softmax

Softmax 激活函数。

keras.activations.softmax(x, axis=-1)

参数
x:张量。
axis:整数,代表softmax所作用的维度。

返回
softmax 变换后的张量。

elu

指数线性单元。

keras.activations.elu(x, alpha=1.0)

参数
x:张量。
alpha:一个标量,表示负数部分的斜率。

返回
线性指数激活:

  • 如果 x > 0,返回值为 x;
  • 如果 x < 0 返回值为 alpha * (exp(x)-1)

selu

可伸缩的指数线性单元(SELU)。

keras.activations.selu(x)

SELU 等同于:scale * elu(x, alpha),其中 alpha 和 scale 是预定义的常量。只要正确初始化权重(参见 lecun_normal 初始化方法)并且输入的数量「足够大」(参见参考文献获得更多信息),选择合适的 alpha 和 scale 的值,就可以在两个连续层之间保留输入的均值和方差。

参数
x: 一个用来用于计算激活函数的张量或变量。

返回
可伸缩的指数线性激活:scale * elu(x, alpha)

注意
与「lecun_normal」初始化方法一起使用。
与 dropout 的变种「AlphaDropout」一起使用。

softplus

Softplus 激活函数。

keras.activations.softplus(x)

参数
x: 张量。

返回
Softplus 激活:log(exp(x) + 1)

softsign

Softsign 激活函数。

keras.activations.softsign(x)

参数
x: 张量。

返回
Softsign 激活:x / (abs(x) + 1)

relu

整流线性单元。

keras.activations.relu(x, alpha=0.0, max_value=None, threshold=0.0)

使用默认值时,它返回逐元素的 max(x, 0)。
否则,它遵循:

  • 如果 x >= max_value:f(x) = max_value,
  • 如果 threshold <= x < max_value:f(x) = x,
  • 否则:f(x) = alpha * (x - threshold)。

参数

  • x: 张量。
  • alpha:负数部分的斜率。默认为 0。
  • max_value:输出的最大值。
  • threshold: 浮点数。Thresholded activation 的阈值值。

返回
一个张量。

tanh

双曲正切激活函数。

keras.activations.tanh(x)

sigmoid

Sigmoid 激活函数。

sigmoid(x)

hard_sigmoid

Hard sigmoid 激活函数。

hard_sigmoid(x)

计算速度比 sigmoid 激活函数更快。
参数
x: 张量。

返回
Hard sigmoid 激活:

  • 如果 x < -2.5,返回 0。
  • 如果 x > 2.5,返回 1。
  • 如果 -2.5 <= x <= 2.5,返回 0.2 * x + 0.5。

exponential

自然数指数激活函数。

keras.activations.exponential(x)

linear

线性激活函数(即不做任何改变)

keras.activations.linear(x)

高级激活函数

对于 Theano/TensorFlow/CNTK 不能表达的复杂激活函数,如含有可学习参数的激活函数,可通过高级激活函数实现,可以在 keras.layers.advanced_activations 模块中找到。 这些高级激活函数包括 PReLU 和 LeakyReLU。

你可能感兴趣的:(python)