作者clansoda (小笨)
看板DataScience
标题[问题] pytorch LSTM output
时间Sat Jul 27 11:41:53 2019
各位先进好,最近我在实验用pytorch来写模型
目前我的问题是我想用LSTM的output layer来当作feed forward network的input
我用这样来unpack我的输出 output, (hs, cs) = LSTM(x)
但是因为LSTM是两层双向的 因此hs就会变成2 * 2
想请问要怎麽只抽最上层的正向的state跟反向的state呢
也想请问有人做nlp的时候用过torchtext吗?
因为目前网路上的tutorial都是一两年前的,有些都没跟上更新
我自己实验来实验去也没很好的把资料用torchtext整理好
最後还是回到DataLoader,因此想问看看有没有人有实作的例子可以参考的
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 108.12.54.240 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DataScience/M.1564198917.A.7F6.html
1F:推 bulc381: hs.view(num_layers, 2, batch, hidden_size)[-1] 07/27 16:05
2F:→ bulc381: 拿出来就会是forward的最後一个state + backward第一个 07/27 16:05
3F:→ bulc381: output.view(length, batch, 2, hidden_dim)[-1, :, 0,:] 07/27 16:06
4F:→ bulc381: output.view(length, batch, 2, hidden_dim)[0, :, 1,:] 07/27 16:06
5F:→ bulc381: 等於上面这两个的concatenation 07/27 16:06
6F:→ bulc381: 文件在outputs的那个段落有提到该怎麽reshape: 07/27 16:07
8F:→ bulc381: torchtext的话可能可以爬爬看OpenNMT的code或是直接用? 07/27 16:09
9F:→ bulc381: 我记得OpenNMT前阵子好像有refactor过data的部分 应该可 07/27 16:12
10F:→ bulc381: 以当作参考 07/27 16:12
11F:→ clansoda: 我有个疑问 我是不是应该要concat forward的最後一个与 07/28 05:35
12F:→ clansoda: backward的最後一个state 不然的话backward的第一个 07/28 05:36
13F:→ clansoda: 不就只看过一个sequence的input吗? 07/28 05:36
14F:→ clansoda: 我找到这边文章给需要的朋友参考 07/28 06:21
15F:→ clansoda: shorturl.at/lDY05 07/28 06:21
17F:→ clansoda: 简单来说 pytorch最後一个state的输出已经是两个方向 07/28 06:25
18F:→ clansoda: 都看过所有输入之後产生的hidden state 07/28 06:25