我尝试使用GridLSTM和MLP / CNN训练图像。
基本上我想尝试的是将图像输入GridLSTM,然后将其输出并作为下一层输入MLP / CNN。
e.g:
2-D image -> GridLSTM -> MLP or CNN -> GridLSTM -> MLP or CNN -> Output
我尝试运行GridLSTM的示例代码和Cifar10上的教程(适用于CNN)。
但两个示例的输入和输出都是不同的类型(GridLSTM列表和CNN张量)。
我想知道是否可以将GridLSTM和MLP / CNN结合起来。
答案 0 :(得分:1)
在"使用LSTM回归神经网络进行场景标记",我相信前馈层将每一步的LSTM图层输出作为输入。假设LSTM层为您提供了N个输出的列表,则需要遍历此列表,并将前馈层应用于列表的每个元素。
这就是为什么在本文的图1中,您会看到LSTM图层中的3xnxn
块映射到Feedforward图层中的大小为1x1
的块。您需要遍历整个图像,以便计算Feedforward图层的整个输出。这也解释了为什么他们使用LSTM和只有几十个单位的前馈层。
现在,如何在Tensorflow中实现这一点取决于您。您可以使用tf.scan()遍历LSTM给出的张量列表,并在每个元素上应用前馈层;或者您可以使用tf.concat()连接列表中的张量,并应用具有合适大小的卷积运算。根据您的网络,一种方式可能比另一种方式更快。</ p>
希望它有所帮助。
答案 1 :(得分:0)
我联系了一位参与GridLSTM实施的同事,以下是她的回复:
你做不到。所以LSTM将删除time-freq中的相关性,所以我认为你不能把它传递给卷积层。话虽这么说,你可以有多个网格LSTM层。以此为例。
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/06/TFLSTM-1.pdf