【问题标题】:(tensorflow) Is it possible to combine GridLSTM and MLP/CNN?(tensorflow) GridLSTM 和 MLP/CNN 可以结合吗?
【发布时间】:2017-01-30 17:48:16
【问题描述】:

我正在尝试使用 GridLSTM 和 MLP/CNN 对图像进行训练。

所以基本上我想尝试的是将图像输入到 GridLSTM,然后将其输出输入 MLP/CNN 作为下一层。

例如:

2-D image -> GridLSTM -> MLP or CNN -> GridLSTM -> MLP or CNN -> Output

我尝试运行 GridLSTM 的示例代码和 Cifar10 上的教程(用于 CNN)。

但两个示例的输入和输出类型不同(GridLSTM 的列表和 CNN 的张量)。

我想知道是否可以首先将 GridLSTM 和 MLP/CNN 结合起来。

【问题讨论】:

    标签: neural-network tensorflow deep-learning recurrent-neural-network lstm


    【解决方案1】:

    与“使用 LSTM 循环神经网络的场景标记”中一样,我相信前馈层在每一步将 LSTM 层的输出作为输入。假设 LSTM 层为您提供了 N 个输出的列表,那么您将需要遍历此列表,并将前馈层应用于列表的每个元素。

    这就是为什么在论文的图 1 中,您会看到 LSTM 层中的 3xnxn 块映射到前馈层中大小为 1x1 的块。您将需要遍历整个图像以计算前馈层的整个输出。这也解释了为什么他们使用 LSTM 和只有几十个单元的前馈层。

    现在,如何在 Tensorflow 中实现它取决于您。您可以使用tf.scan() 遍历LSTM 给出的张量列表,并在每个元素上应用前馈层;或者您可以使用tf.concat() 连接列表中的张量并应用合适大小的卷积运算。根据您的网络,一种方法可能比另一种更快。

    希望对你有帮助。

    【讨论】:

    • 嗨 Vu Pham,非常感谢您抽出宝贵的时间来写答案。我尝试了 tf.cancat() 并通过修改 Cifar10 教程应用了卷积运算,它似乎运行良好。我想知道在结合 rnn 和 cnn 模块后,tensorflow 支持的反向传播和优化是否仍然有效。我很高兴知道它有效!再次感谢您的帮助,不胜感激:)
    【解决方案2】:

    我联系了一位参与 GridLSTM 实施的同事,她的回复如下:


    你不能。所以 LSTM 将消除时频中的相关性,所以我认为你不能将它传递给卷积层。话虽如此,您可以有多个网格 LSTM 层。以此为例。

    https://www.microsoft.com/en-us/research/wp-content/uploads/2016/06/TFLSTM-1.pdf

    【讨论】:

    • 感谢您的评论!实际上,我正在尝试实现“使用 LSTM 循环神经网络进行场景标记”(cv-foundation.org/openaccess/content_cvpr_2015/papers/…)。他们使用 2D-LSTM 网络,但我计划用 GridLSTM 替换 2D-LSTM,因为后者似乎是前者的更新版本。他们在 2D-LSTM 层之后使用了“全连接层”,我认为我可以在 Tensorflow 的 MLP/CNN 模块中使用全连接层。用Tensorflow实现论文是不是不可能?
    猜你喜欢
    • 2020-01-20
    • 1970-01-01
    • 2020-05-12
    • 2019-10-02
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    相关资源
    最近更新 更多