Как использовать маскировку со слоем Convolution1D в keras? - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь выполнить задачу классификации настроений, для которой я использую архитектуру на основе внимания, которая имеет как слой свертки, так и слои BiLSTM. Первый слой моей модели - это слой встраивания, за которым следует слой Convolution1D. Я использовал mask_zero=True для слоя Embedding, так как добавил в последовательность нули. Однако это создает ошибку для слоя Convolution1D, поскольку этот слой не поддерживает маскирование. Однако мне нужно замаскировать нулевые входы, так как у меня есть слои LSTM после сверточных слоев. У кого-нибудь есть решение для этого. Я прикрепил образец кода своей модели к слою Convolution1D для справки.

wordsInputs = Input(shape=(maxSeq,), name='words_input')
embed_reg = l2(l=0.001)
emb = Embedding(vocabSize, 300, mask_zero=True, init='glorot_uniform', W_regularizer=embed_reg)(wordsInputs)
convOutput = Convolution1D(nb_filter=100, filter_length=3, activation='relu', border_mode='same')(emb)
...