激活函数可以通过设置单独的激活层实现,也可以在构造层对象时通过传递 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 激活函数。
keras.activations.softmax(x, axis=-1)
参数
x:张量。
axis:整数,代表softmax所作用的维度。
返回
softmax 变换后的张量。
指数线性单元。
keras.activations.elu(x, alpha=1.0)
参数
x:张量。
alpha:一个标量,表示负数部分的斜率。
返回
线性指数激活:
可伸缩的指数线性单元(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 激活函数。
keras.activations.softplus(x)
参数
x: 张量。
返回
Softplus 激活:log(exp(x) + 1)。
Softsign 激活函数。
keras.activations.softsign(x)
参数
x: 张量。
返回
Softsign 激活:x / (abs(x) + 1)。
整流线性单元。
keras.activations.relu(x, alpha=0.0, max_value=None, threshold=0.0)
使用默认值时,它返回逐元素的 max(x, 0)。
否则,它遵循:
参数
返回
一个张量。
双曲正切激活函数。
keras.activations.tanh(x)
Sigmoid 激活函数。
sigmoid(x)
Hard sigmoid 激活函数。
hard_sigmoid(x)
计算速度比 sigmoid 激活函数更快。
参数
x: 张量。
返回
Hard sigmoid 激活:
自然数指数激活函数。
keras.activations.exponential(x)
线性激活函数(即不做任何改变)
keras.activations.linear(x)
对于 Theano/TensorFlow/CNTK 不能表达的复杂激活函数,如含有可学习参数的激活函数,可通过高级激活函数实现,可以在 keras.layers.advanced_activations 模块中找到。 这些高级激活函数包括 PReLU 和 LeakyReLU。