मैं अपने CNN मॉडल में एक Dropout परत जोड़ना चाहता हूं जैसा कि नीचे दिखाया गया है (पीले रंग में हाइलाइट किया गया):

inputs_1 = keras.Input(shape=(10081,1))

layer1 = Conv1D(64,14)(inputs_1)
layer2 = layers.MaxPool1D(5)(layer1)
layer3 = Conv1D(64, 14)(layer2)   
layer4 = layers.GlobalMaxPooling1D()(layer3)

inputs_2 = keras.Input(shape=(84,))             
layer5 = layers.concatenate([layer4, inputs_2])
layer6 = Dense(128, activation='relu')(layer5)

परत 6. जोड़ें (छोड़ने (0.25)) (नकाबपोश)

layer7 = Dense(2, activation='softmax')(layer6)

model_2 = keras.models.Model(inputs = [inputs_1, inputs_2], output = [layer7])
model_2.summary()

और यह वापस आ गया

विशेषता त्रुटि: 'नोड' ऑब्जेक्ट में कोई विशेषता नहीं है 'output_masks'

मुझे लगता है कि ऐसा हो सकता है कि मैंने Keras और tf.keras का उपयोग किया हो, लेकिन मुझे यकीन नहीं है।

0
nilsinelabore 5 पद 2019, 07:55

1 उत्तर

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

आप नीचे दिए गए कोड का उपयोग करके ऐसा कर सकते हैं। जैसा कि आप केरस फंक्शनल एपीआई का उपयोग कर रहे हैं। आपको इनपुट और आउटपुट देकर ड्रॉपआउट लेयर को भी इसी तरीके से जोड़ना चाहिए

layer6=Dropout(0.25)(layer6)

उपरोक्त पंक्ति में मैंने परत 6 को ड्रॉपआउट परत के इनपुट के रूप में बनाया है और इसके परिणाम उसी परत 6 में सहेजे गए हैं। जब आप केरस अनुक्रमिक एपीआई का उपयोग कर रहे हों तो लेयर 6.एड () का उपयोग किया जाना चाहिए और कार्यात्मक एपीआई के लिए उपयोग नहीं किया जाना चाहिए।

नीचे दिया गया पूर्ण अद्यतन कोड ..

inputs_1 = keras.Input(shape=(10081,1))

layer1 = Conv1D(64,14)(inputs_1)
layer2 = layers.MaxPool1D(5)(layer1)
layer3 = Conv1D(64, 14)(layer2)   
layer4 = layers.GlobalMaxPooling1D()(layer3)

inputs_2 = keras.Input(shape=(84,))             
layer5 = layers.concatenate([layer4, inputs_2])
layer6 = Dense(128, activation='relu')(layer5)
layer6=Dropout(0.25)(layer6)

layer7 = Dense(2, activation='softmax')(layer6)

model_2 = keras.models.Model(inputs = [inputs_1, inputs_2], output = [layer7])
model_2.summary()
0
ArunJose_Intel 5 पद 2019, 08:04