Nlp Keras将构建具有可变输入大小的CNN

Nlp Keras将构建具有可变输入大小的CNN,nlp,keras,conv-neural-network,Nlp,Keras,Conv Neural Network,我想从下图构建一个CNN 我假设每一次句子都可以有不同的长度,并且仍然可以构建它 下面是我在网上找到的东西,但有点丢了 ngram_filters = [2, 3, 4] conv_filters = [] for n_gram in ngram_filters: conv_filters.append(Sequential()) conv_filters[-1].add(Conv2D(1, 1, n_gram, 5)) conv_filters[-1].add(Ma

我想从下图构建一个CNN

我假设每一次句子都可以有不同的长度,并且仍然可以构建它

下面是我在网上找到的东西,但有点丢了

ngram_filters = [2, 3, 4]
conv_filters = []

for n_gram in ngram_filters:
    conv_filters.append(Sequential())
    conv_filters[-1].add(Conv2D(1, 1, n_gram, 5))
    conv_filters[-1].add(MaxPooling2D(poolsize=(nb_tokens - n_gram + 1, 1)))
    conv_filters[-1].add(Flatten())

model = Sequential()
model.add(Merge(conv_filters, mode='concat'))

图片来自以下博客-

您不需要使用可变的输入大小,只需将输入填充为零(确保屏蔽这些零)。您可以将输入大小定义为一个非常大的大小,只需填充每个句子长度和输入大小之间的差异

Keras'中有一个内置函数,您可以在中找到它,该函数是“pad_序列”。通过使用遮罩这些值,确保您的模型知道填充值

您可以看到一个实现示例。

看看本文-