0

我试图用tensorflow实现卷积神经网络来分类文本。我已经发现了一些实施模式,尤其是两种实现方式发现:卷积神经网络中并行和顺序卷积之间的区别

[我不能发布超过2个链接,我会尽量提供意见的来源然而,他们似乎

在架构上有着根本性的不同。第一个模型使用与输入数据并行的卷积,而第二个模型以顺序方式使用卷积。我用tensorboard可视化两个模型:

首先并行卷积。卷积后,将结果拼接起来,并用一个完全连接的层创建输出。

parallel use of convolutions

连续回旋似乎更直截了当,我们使用的结果形成上一层作为输入下一个层。

sequential use of convolutions

所以我的问题是,因为二者都用于分类文本,其中介于这两种实现之间的差异,哪一个更适合文本分类的?

+0

实施来源: - http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/ - https://github.com/ scharmchi/char-level-cnn-tf –

回答

2

这不是'平行'与'顺序'所必需的。从我看到的是'并行'实现实际上只是一个卷积层,然而与不同的滤波器大小

基本上,如果你只是有一个卷积层93x3特点将是:

input     convoluted     pooling   
x * y * 1    x' * y' * 9     x'' * y'' * 9 

因此,基本上,每个过滤器经过相同的汇集和卷积运算。

但是'顺序'模型的主要区别在于他使用不同过滤器尺寸的功能

input     convoluted     pooling   concat (may also flatten 
x * y * 1    x1 * y1 * 3     x1' * y1' * 3 x123' * y123' * 9 
         x2 * y2 * 3     x2' * y2' * 3 
         x3 * y3 * 3     x3' * y3' * 3 

然后再把它转换成óne。这与“顺序”模型唯一的区别在于他明确显示了不同的过滤器尺寸 - 但功能的数量完全相同。

您的'平行'和'顺序'都是平行的:每个特征映射都会被单独汇集起来。

+0

你是绝对正确的,非常感谢你的解释,这样做更有意义! –