ValueError: При подаче тензоров Symboli c в модель мы ожидаем, что тензоры будут иметь размер пакета stati c. Получил тензор с формой: (Нет, 27, 300) - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь обучить архитектуру условного кодирования, используя 2 LSTM. Однако, когда я передаю свое вложение в качестве ввода в модуль fit, я получаю сообщение об ошибке. Это в основном модель с несколькими входами.

sequence_length = X_train.shape[1]
sequence_lengthP = Xprev.shape[1]

embedding_layerP = Embedding(vocab_sizeP, 300, weights=[embedding_matrixP], input_length=maxlen, trainable=False)
inputsP = Input(shape=(sequence_lengthP,))
embeddingP = embedding_layerP(inputsP)

reshapeP = Reshape((sequence_lengthP, EMBEDDING_DIM, 1))(embeddingP)

embedding_layer = Embedding(vocab_size, 300, weights=[embedding_matrix], input_length=maxlen, trainable=False)
inputs = Input(shape=(sequence_length,))
embedding = embedding_layer(inputs)

reshape = Reshape((sequence_length, EMBEDDING_DIM, 1))(embedding)


prev_input = Input(shape=(sequence_lengthP,300,),name='prev_input')
prev_lstm = LSTM(64, name='prev_lstm', return_state=True)
prev_output, state_h, state_c = prev_lstm(prev_input)
final_prev_states = [state_h, state_c]


main_input = Input(shape=(sequence_length,300,),name='main_input')
main_lstm = LSTM(64, name='main_lstm', return_state=True)
main_outputs, _, _ = main_lstm(main_input, initial_state=final_prev_states)
dense = Dense(100, activation='relu', name='dense')(main_outputs)
output = Dense(3, activation='softmax', name='output')(dense)

model_cond = Model(inputs=[prev_input, main_input], outputs=output)
model_cond.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])


history = model_cond.fit([embeddingP, embedding], y_train,  epochs=150, verbose=1, validation_data=(X_val, y_val), shuffle=False)  # starts training

Ошибка:

ValueError: When feeding symbolic tensors to a model, we expect the tensors to have a static batch size. Got tensor with shape: (None, 27, 300)

Мои embedding и embeddingP имеют форму (?, 27, 300). Есть ли у вас какие-либо идеи, что я должен передать в качестве входных данных для модуля fit?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...