keras.activations.softmax और keras.layers.Softmax में क्या अंतर है? एक ही सक्रियण फ़ंक्शन की दो परिभाषाएँ क्यों हैं?

keras.activations.softmax: https://keras.io/activations/

keras.layers.Softmax: https://keras.io/layers/advanced-activations/

2
Amir Saniyan 27 नवम्बर 2018, 19:23

1 उत्तर

सबसे बढ़िया उत्तर

वे जो करते हैं उसके मामले में वे एक दूसरे के बराबर हैं। दरअसल, 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 तर्क लेता है और आप सॉफ्टमैक्स की गणना इसके अंतिम अक्ष (जो डिफ़ॉल्ट है) के बजाय इनपुट के किसी अन्य अक्ष पर कर सकते हैं:

soft_out = Softmax(axis=desired_axis)(input_tensor)
4
today 27 नवम्बर 2018, 16:59