Neural network Keras-1D卷积它是如何工作的
从这个例子中: 下面是这个片段。嵌入层为批次中的每个示例输出400 x 50矩阵。我的问题是一维卷积是如何工作的?它如何在400 x 50矩阵中工作Neural network Keras-1D卷积它是如何工作的,neural-network,convolution,keras,Neural Network,Convolution,Keras,从这个例子中: 下面是这个片段。嵌入层为批次中的每个示例输出400 x 50矩阵。我的问题是一维卷积是如何工作的?它如何在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
# 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))
在卷积神经网络(CNN)中,一维和二维滤波器实际上不是一维和二维的。这是描述的惯例
在您的示例中,每个1D过滤器实际上是一个Lx50过滤器,其中L是过滤器长度的参数。卷积仅在一维中执行。这可能就是为什么它被称为1D。因此,通过适当的填充,每个1D滤波器卷积得到一个400x1向量。卷积1D层最终将输出一个400*
nb_filter
矩阵,来自信号处理的背景。我也花了一段时间才理解它的概念,社区中的许多人似乎都是这样
解释得很好。正如许多论坛上经常用文字解释的那样,我制作了一个小动画,希望对大家有所帮助
请参见下面的输入张量、过滤器(或权重)和输出张量。您还可以将输出张量的大小视为所用过滤器数量的函数(用不同的颜色表示)
请注意,要在输入和过滤器之间执行标量乘法,应该对过滤器进行转置。也有不同的实现(Karas、Tensorflow、Pytorch…),但我认为这个动画可以很好地描述正在发生的事情
希望它能帮助一些人。我们能将其概念化为在每一步创建一个L单词的点积(第一个L,然后滑动,包括单词2:2+L等),其中点积用于每次完全嵌入L单词(50个值)吗?是,卷积的每个输出值实际上是L*50嵌入值与滤波器的点积。