【问题标题】:tf sumpooling layer 1d vs 2dtf sumpooling layer 1d vs 2d
【发布时间】:2019-12-23 15:19:59
【问题描述】:

我目前正在撰写一篇由Sturm et al. (2016) published in the Journal of Neuroscience 撰写的论文,试图使用 python 和 TensorFlow、Keras 库来复制他们的结果。

我非常怀疑我是否理解他们设计模型的方式,如第 2.1 节所述。

由于缺乏该领域的经验,我无法完全理解以下几点。

  1. 他们使用的是 1d 还是 2d sumpooling 层?
  2. 每一层之后的确切输出形状是什么?
  3. 他们是否使用分类格式进行输出?
  4. 他们是否使用了 dropout 和任何其他层?

您将如何设计所描述的模型?

提前感谢您提供宝贵的 cmets。

【问题讨论】:

    标签: python tensorflow tf.keras


    【解决方案1】:

    这是我的看法。

    使用的数据集:Here 和来自this 论文的数据集

    他们是使用 1d 还是 2d sumpooling 层?

    虽然他们没有具体说明他们在模型中使用了什么,但应该是一维池化。因为 EEG 信号只有两个维度(时间、通道),这是 1D 池化层接受的输入类型。此外,论文说(第 2.1 节),

    The  first  linear  layer  accepts  an input  of  the  dimensionality  
    301  time  points × 118  channels EEG features
    

    但后来他们说了下面的话,这有点奇怪。

    Each epoch’s spatio-temporal features(301  time  points×118  channels  for  aa-ay,  
    301  time  point×58  channels  for  subject  od-obx)  were  vectorized  
    into  one vector with 33518 (17458) dimensions.
    

    我猜他们在矢量化之后添加了一个维度,因此单个输入具有 2 个维度。否则无法进行池化。 另外应该是 35518 (301x118) 而不是 33518。

    每一层之后的确切输出形状是什么?

    似乎有两个 DNN 网络(一个用于第一个数据集,另一个用于另一个)。这不是我完全确定的。但这是有必要的,因为这两个数据集具有不同的输入大小。

    (None, 301, 118) (None, 301, 58)
           |                |
           V                V
       Flatten()         Flatten()
           |                |
           V                V
    (None, 35518, 1) (None, 17458, 1)
           |                |
           V                V
      Sumpooling()      Sumpooling()
           |                |
           V                V
      (None, 500)       (None, 500)
           |                |
           V                V
          Tanh             Tanh
           |                |
           V                V
      (None, 500)      (None, 500)
           |                |
           V                V
       Softmax(2)       Softmax(2)    
           |                |
           V                V
       (None, 2)        (None, 2)    
    

    他们是否使用分类格式进行输出?

    他们正在解决一个二叉树分类问题。所以是的,他们将使用分类格式。应该是这样的,

    If label 0 => [1 0]
    If label 1 => [0 1]
    

    它们也可以有一个带有一个 Sigmoid(1) 的最后一层,并按原样拥有标签(即标量 - 0 / 1)。

    他们是否使用了 dropout 和任何其他层?

    在这篇论文中并没有真正提到他们使用了 dropout。老实说,似乎也没有合适的地方使用 dropout。唯一的地方是在tanh 之后。但由于网络并不复杂,可能作者并不觉得有必要。

    【讨论】:

    • 你说得对,我也有同样的解释。让我感到困惑的是这种方法的幼稚。另外,很抱歉我花了一年的时间来审查这个,我不是活跃用户。再次感谢您。
    猜你喜欢
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多