keras.activations.softmax和keras.layers.Softmax有什么区别?

时间:2018-11-27 16:23:35

标签: machine-learning keras deep-learning softmax activation-function

keras.layers.Softmaxkeras.activations.softmax有什么区别?为什么同一激活函数有两个定义?

keras.layers.Softmaxhttps://keras.io/activations/

mountPathhttps://keras.io/layers/advanced-activations/

1 个答案:

答案 0 :(得分:2)

在做事上彼此等效。实际上,Softmax层将调用activations.softmax under the hood

def call(self, inputs):
    return activations.softmax(inputs, axis=self.axis)

但是,它们的区别在于Softmax层可以直接用作层:

from keras.layers import Softmax

soft_out = Softmax()(input_tensor)

但是activations.softmax不能直接用作图层。相反,您可以通过activation参数将其作为其他层的激活函数传递:

from keras import activations

dense_out = Dense(n_units, activation=activations.softmax)

此外,请注意,使用Softmax层的好处是它接受一个axis参数,您可以计算输入的另一个轴而不是它的最后一个轴(即默认):

soft_out = Softmax(axis=desired_axis)(input_tensor)