Keras несколько входов (один вход двоичный, другая последовательность) - PullRequest
0 голосов
/ 10 февраля 2020

Я использую вложения GloVe для преобразования текстов в векторы для прогнозирования бинарных настроений. Я также хочу рассмотреть фиктивную переменную в моем NN (опубликовано зимой = 0, летом = 1).

Я читаю некоторые источники на нескольких входах, но получаю

ValueError: Unexpectedly found an instance of type `<class 'keras.layers.merge.Concatenate'>`. Expected a symbolic tensor instance. .... Layer output was called with an input that isn't a symbolic tensor. Received type: <class 'keras.layers.merge.Concatenate'>. Full input: [<keras.layers.merge.Concatenate object at 0x7f2b9b677d68>]

My Сеть выглядит следующим образом:

sequence_input = Input(shape=(MAX_SEQUENCE_LENGTH,), dtype='int32')
embedded_sequences = embedding_layer(sequence_input)

dummy= Input(shape=(1,), dtype='int32', name='dummy')

x = Conv1D(100, 20, activation='relu')(embedded_sequences) # filter= 100, kernel=20
x = MaxPooling1D(5)(x)  # reduces output to 1/5 of original data by taking only max values
x = Conv1D(100, 20, activation='relu')(x)
x = GlobalAveragePooling1D()(x)  # global max pooling
x = Dropout(0.5)(x)
x = Dense(100, activation='relu')(x)

combined = Concatenate([x, dummy])

preds = Dense(1, activation='sigmoid',name='output')(combined) 
model = Model(inputs=[sequence_input,dummy], outputs=[preds])
print(model.summary())

Я чувствую, что упускаю что-то важное, но не могу понять, что ..

text + dummy -> binary_prediction

1 Ответ

1 голос
/ 10 февраля 2020

Ваш Concatenate звонок неверный, должен быть:

 combined = Concatenate()([x, dummy])
...