Многоканальный двунаправленный RNN Ошибка Значение Ошибка? - PullRequest
0 голосов
/ 31 марта 2020

Итак, я построил модель Multi Input с конкатенацией, и я получаю ошибку значения. я сошлюсь на все это ниже.

def bidir_model(x_train, x_test, y_train, y_test, meta, vocabulary_size, output):
    nlp_input = Input(shape=(388,), name='nlp_input')
    meta_input = Input(shape=(2,), name='meta_input')
    emb = Embedding(output_dim=vocabulary_size, input_dim=100, input_length=388)(nlp_input)
    nlp_out = Bidirectional(LSTM(128, dropout=0.3, recurrent_dropout=0.3, 
    kernel_regularizer=regularizers.l2(0.01)))(emb)
    x = concatenate([nlp_out, meta_input])
    x = Dense(150, activation='relu')(x)
    x = Dense(output, activation='softmax')(x)
    model = Model(inputs=[nlp_input , meta_input], outputs=[x])
    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) 
    ckpnt = ModelCheckpoint('model_bidir.h5', save_best_only=True, save_weights_only=True)
    model.fit([x_train, meta], y_train, validation_data=(x_test, y_test), batch_size=150, epochs=10, callbacks=[ckpnt])

мой ввод nlp представляет собой последовательность, созданную с помощью tokenizer.text_to_sequence () и дополненную нулями. и meta_input - это массив со всеми моими числовыми функциями, я получаю эту ошибку ...

ValueError: Ошибка при проверке ввода модели: список массивов Numpy, которые вы передаете в ваш модель не соответствует размеру, который ожидала модель. Ожидается увидеть 2 массива (ов), но вместо этого получен следующий список из 1 массива: [массив ([[0, 0, 0, ..., 139, 105, 478], [0, 0, 0, .. ., 112, 3247, 21827], [0, 0, 0, ..., 91, 65372, 72], ..., [0, ...

Все они * Массивы 1012 * точно. Заранее спасибо :)!

1 Ответ

0 голосов
/ 31 марта 2020

В вашем validation_data отсутствуют значения для meta_input.

...