Я разрабатываю модель keras для классификации на основе данных товара.
У меня есть данные с четырьмя измерениями следующим образом
[batch, article_num, word_num, word embedding size]
, и я хочу кормить каждого (word_num, вложение слова) данные в керас Двунаправленный слой
, чтобы получить результат с 3 измерениями следующим образом.
[batch, article_num, bidirectional layer output size]
, когда я попытался передать данные 4 измерений для тестирования, подобного этому
inp = Input(shape=(article_num, word_num, ))
# dims = [batch, article_num, word_num]
x = Reshape((article_num * word_num, ), input_shape = (article_num, word_num))(inp)
# dims = [batch, article_num * word_num]
x = Embedding(word_num, word_embedding_size, input_length = article_num * word_num)(x)
# dims = [batch, article_num * word_num, word_embedding_size]
x = Reshape((article_num , word_num, word_embedding_size),
input_shape = (article_num * word_num, word_embedding_size))(x)
# dims = [batch, article_num, word_num, word_embedding_size]
x = Bidirectional(CuDNNLSTM(50, return_sequences = True),
input_shape=(article_num , word_num, word_embedding_size))(x)
и я получил ошибку
ValueError: Input 0 is incompatible with layer bidirectional_12: expected ndim=3, found ndim=4
как мне этого добиться?