Keras - 1D卷积它是如何工作的

B_M*_*ner 11 convolution neural-network keras

从这个例子:https: //github.com/fchollet/keras/blob/master/examples/imdb_cnn.py

下面是这个片段.嵌入层为批量中的每个示例输出400 x 50矩阵.我的问题是1D卷积是如何工作的?它如何在400 x 50矩阵中工作?

# we start off with an efficient embedding layer which maps
# our vocab indices into embedding_dims dimensions
model.add(Embedding(max_features,
                    embedding_dims,
                    input_length=maxlen,
                    dropout=0.2))

# we add a Convolution1D, which will learn nb_filter
# word group filters of size filter_length:
model.add(Convolution1D(nb_filter=nb_filter,
                        filter_length=filter_length,
                        border_mode='valid',
                        activation='relu',
                        subsample_length=1))
Run Code Online (Sandbox Code Playgroud)

pya*_*yan 13

在卷积神经网络(CNN)中,1D和2D滤波器实际上不是1维和2维.这是一个描述的惯例.

在您的示例中,每个1D滤波器实际上是Lx50滤波器,其中L是滤波器长度的参数.卷积仅在一个维度上执行.这可能就是它被称为1D的原因.因此,通过适当的填充,每个1D滤波器卷积提供400x1向量.Convolution1D层最终将输出400*的矩阵nb_filter.