Они эквивалентны друг другу с точки зрения того, что они делают.На самом деле, слой Softmax
будет вызывать activations.softmax
под капотом :
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)