使用完全连接的层

时间:2018-05-31 10:54:31

标签: matlab neural-network conv-neural-network

在matlab中,我正在实现本文所述的卷积神经网络 https://www.researchgate.net/publication/322514744_On_the_improvement_of_classifying_EEG_recordings_using_neural_networks

第一层使用完全连接的层将25x375矩阵投影到30x375。 他们通过在每列上应用大小为30的完全连接层来实现此目的。 我正在尝试在Matlab中实现网络,问题是matlab不支持这种完全连接的图层投影。但是我读到,对于每个完全连接的层,存在具有等效前向函数的卷积层。

这个卷积层怎么样?

1 个答案:

答案 0 :(得分:3)

您可以使用2D convolution来实现它。

  • kernel的大小必须为(25, 1),因此这将使其成为完全连接的图层。
  • 要在每列申请,您需要有一个步幅(25, 1)
  • 输出渠道必须为30

代码:

X = tf.random_normal([25, 375])
conv = tf.transpose(tf.squeeze(tf.layers.conv2d(X[tf.newaxis, ..., tf.newaxis],
           filters=30,kernel_size=(25,1), strides=(25,1),padding='SAME')), [1,0])

print(conv.get_shape().as_list())

输出:

[30, 375]