Моя форма ввода представляет собой текстовый документ размером 10000x500. 10000 представляет количество документов, а 500 — количество слов.
То, что я пытаюсь сделать, это передать текст для встраивания kera, за которым следует BLSTM, а затем Conv2D, а затем 2Dpooling, сглаживание и, наконец, полностью связанный плотный слой.
Архитектура показана ниже:
inp = Input(shape=(500,))
x = Embedding(max_features=10000, embed_size=100)(inp)
x = Bidirectional(CuDNNLSTM(50, return_sequences=True))(x)
x = Conv2D(filters=128, kernel_size=(3, 3), input_shape=(100,500,1))(x)
x = MaxPooling2D()(x)
x = Flatten()(x)
x = Dense(1, activation="sigmoid")(x)
Выходная форма встраивания будет (Нет, 500, 100). Выходная форма из скрытого состояния BLSTM будет (Нет, 500, 100). Я хотел бы, чтобы Conv2D извлекал локальные функции по скрытым слоям из BLSTM. Однако у меня возникает ошибка несоответствия размеров.
ValueError: Input 0 is incompatible with layer conv2d_8: expected ndim=4, found ndim=3
Я пробовал решение здесь -sense-to?rq=1">При создании CNN я получаю жалобы от Кераса, которые не имеют для меня смысла. но все еще получаю сообщение об ошибке.