keras.activations.softmax 和 keras.layers.Softmax 有什么区别?
What is the difference between keras.activations.softmax and keras.layers.Softmax?
keras.activations.softmax
和 keras.layers.Softmax
有什么区别?为什么同一个激活函数有两个定义?
keras.activations.softmax
: https://keras.io/activations/
keras.layers.Softmax
: https://keras.io/layers/advanced-activations/
他们在做的事情上是等价的。实际上,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
参数,您可以在输入的另一个轴而不是最后一个轴上计算 softmax(是默认值):
soft_out = Softmax(axis=desired_axis)(input_tensor)
keras.activations.softmax
和 keras.layers.Softmax
有什么区别?为什么同一个激活函数有两个定义?
keras.activations.softmax
: https://keras.io/activations/
keras.layers.Softmax
: https://keras.io/layers/advanced-activations/
他们在做的事情上是等价的。实际上,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
参数,您可以在输入的另一个轴而不是最后一个轴上计算 softmax(是默认值):
soft_out = Softmax(axis=desired_axis)(input_tensor)