क्या केरस में अंतिम परत में म्यूटेंट सॉफ्टमैक्स को लागू करना संभव है? तो नोड्स का योग 1-4 = 1; 5-8 = 1; आदि।
क्या मुझे एक अलग नेटवर्क डिज़ाइन के लिए जाना चाहिए?
क्या केरस में अंतिम परत में म्यूटेंट सॉफ्टमैक्स को लागू करना संभव है? तो नोड्स का योग 1-4 = 1; 5-8 = 1; आदि।
क्या मुझे एक अलग नेटवर्क डिज़ाइन के लिए जाना चाहिए?
जवाबों:
मैं कार्यात्मक इंटरफ़ेस का उपयोग करूंगा।
कुछ इस तरह:
from keras.layers import Activation, Input, Dense
from keras.models import Model
from keras.layers.merge import Concatenate
input_ = Input(shape=input_shape)
x = input_
x1 = Dense(4, x)
x2 = Dense(4, x)
x3 = Dense(4, x)
x1 = Activation('softmax')(x1)
x2 = Activation('softmax')(x2)
x3 = Activation('softmax')(x3)
x = Concatenate([x1, x2, x3])
model = Model(inputs=input_, outputs=x)
categorical_accuracy
और predict_classes
तरीकों के उपयोग के लिए अधिक विचार की आवश्यकता हो सकती है। । ।
यह संभव है कि केवल अपने स्वयं के सॉफ्टमैक्स फ़ंक्शन को लागू करें। आप एक टेंसर को भागों में विभाजित कर सकते हैं, फिर सॉफ्टमैक्स को अलग-अलग प्रति भाग और समतल टेंसर भागों की गणना करें:
def custom_softmax(t):
sh = K.shape(t)
partial_sm = []
for i in range(sh[1] // 4):
partial_sm.append(K.softmax(t[:, i*4:(i+1)*4]))
return K.concatenate(partial_sm)
concatenate
अंतिम अक्ष के माध्यम से अक्ष तर्क तर्क के बिना (हमारे मामले में अक्ष = 1)।
फिर आप इस सक्रियण फ़ंक्शन को एक छिपी हुई परत में शामिल कर सकते हैं या इसे एक ग्राफ में जोड़ सकते हैं।
Dense(activation=custom_activation)
या
model.add(Activation(custom_activation))
आपको एक नई लागत फ़ंक्शन को भी परिभाषित करने की आवश्यकता है।