keras.layers.Softmax
和keras.activations.softmax
有什么区别?为什么同一激活函数有两个定义?
keras.layers.Softmax
:https://keras.io/activations/
答案 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)