आपको त्रुटि मिल रही है क्योंकि इसे result
परिभाषित किया गया हैSequential()
मॉडल के लिए केवल एक कंटेनर के में है और आपने इसके लिए कोई इनपुट परिभाषित नहीं किया है।
यह देखते हुए कि आप result
तीसरा इनपुट लेने के लिए क्या सेट करना चाहते हैं x3
।
first = Sequential()
first.add(Dense(1, input_shape=(2,), activation='sigmoid'))
second = Sequential()
second.add(Dense(1, input_shape=(1,), activation='sigmoid'))
third = Sequential()
third.add(Dense(1, input_shape=(1,), activation='sigmoid'))
merged = Concatenate([first, second])
result = Concatenate([merged, third])
ada_grad = Adagrad(lr=0.1, epsilon=1e-08, decay=0.0)
result.compile(optimizer=ada_grad, loss='binary_crossentropy',
metrics=['accuracy'])
हालाँकि, इस तरह की इनपुट संरचना वाले मॉडल के निर्माण का मेरा पसंदीदा तरीका कार्यात्मक एपीआई का उपयोग करना होगा ।
यहां आपको आरंभ करने के लिए अपनी आवश्यकताओं का कार्यान्वयन है:
from keras.models import Model
from keras.layers import Concatenate, Dense, LSTM, Input, concatenate
from keras.optimizers import Adagrad
first_input = Input(shape=(2, ))
first_dense = Dense(1, )(first_input)
second_input = Input(shape=(2, ))
second_dense = Dense(1, )(second_input)
merge_one = concatenate([first_dense, second_dense])
third_input = Input(shape=(1, ))
merge_two = concatenate([merge_one, third_input])
model = Model(inputs=[first_input, second_input, third_input], outputs=merge_two)
ada_grad = Adagrad(lr=0.1, epsilon=1e-08, decay=0.0)
model.compile(optimizer=ada_grad, loss='binary_crossentropy',
metrics=['accuracy'])
टिप्पणियों में सवाल का जवाब देने के लिए:
1) परिणाम और विलय कैसे जुड़े हैं? आप मानते हैं कि वे कैसे समाप्त होते हैं।
इस तरह से काम करता है:
a b c
a b c g h i a b c g h i
d e f j k l d e f j k l
यानी पंक्तियाँ अभी शामिल हैं।
2) अब, x1
पहले x2
पर इनपुट है, दूसरे में इनपुट है और x3
तीसरे में इनपुट है।
result
औरmerged
(याmerged2
) परतों एक दूसरे के साथ अपने जवाब के पहले भाग पर जुड़ा हुआ?