前几天在 v2 发了个 DL 相关的帖子受到很多帮助。最近又遇到一个问题是,如果我想跑一个自行设计的网络结构,如果以 LSTM 输出结果接线性层那么前者应该输出单层,但如果想接到 cnn 上是否要要把输出结果转换成双层呢?
比如 batch_size 设置为 32 ,一个句子有 20 个词,一个词有 8 个维度表示,那么一个 LSTM 层的输出结构应该类似以下:
tensor([32, 20, 8]) -> (转换成[32, 8, 20]) -> nn.LSTM(20, 64) -> tensor([32, 8, 64])
但是因为分析句子,双向分析似乎是比较合理的,那么当把 nn.LSTM 设置为双向后,它的输出结果会变成[32,8,128],这时候如果再接入 1dCNN 的话,感觉 CNN 的窗口捕捉不太符合人类逻辑?
所以有必要转换成[32,8,2,64],或者转换成[32,16,64]这种的吗? LSTM 的输出结果一般认为还有序列特性吗?还是完全无法理解的高维信息?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.