请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

lstm的第一步输入

老师您的板书写的是embedding_img输入到LSTM,但是input为[img, a, b, c, d]。 那么,

  1. 第一步的input其实是[embedding_img, a, b, c, d] 对么?因为后面的代码concat之后应该是这样
  2. 为什么是[embedding_img, a, b, c, d]而不是[embedding_img, a, b, c, d,e],为什么要进行最后一个词的截断呢?
  3. 截断还不损失的前提是最后一个被截断的都是eos,但是在之前的代码中显示,只有不足长度的句子才会在最后填充eos,这样有的句子结尾是eos,有的则不是。所以难道不是应该所有的句子不管是截断还是填充都需要设置最后一位为eos。
  4. 我理解的LSTM不是每一个time_step输入的是一个单词的embedding,但是这里为什么在第一步的时候一次性就把整个句子的embedding都输入了呢?我看论文觉得是第一步输入图片特征,之后的每一步再输入单个单词?觉得这个模型的输入整个shape不是很明白

正在回答

3回答

个人鄙见,输出是[embedding_img, a, b, c, d],输出是[a, b, c, d, e],是因为LSTM正向传播是分步训练的,每一步输入后得到的是下一步(timesteps+=1)的输出。另一方面,LSTM需要保证输入矩阵和输出矩阵的大小一致。如果我说明白了,请采纳,谢谢!

1 回复 有任何疑惑可以回复我~
  • 提问者 慕粉9315168 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-12-27 15:11:56
正十七 2019-12-15 15:21:50

1,2可以看“静以修身666”同学的回答。

3. 是代码中显示的这样,被截断的句子最后不是eos。句子代表的就是句子末,所以如果长度足够,没有必要放eos。

4. 在这里我们是做了整合,把图片的embedding跟word的embedding放在了一起。对于一次训练。我们的输入是

[img_embedding, word_a_embedding, word_b_embedding, ...],然后要预测的是[word_a_embedding, word_b_embedding, word_c_embedding, ...],我们在训练的时候是多个timesteps一起训练的。

2 回复 有任何疑惑可以回复我~
提问者 慕粉9315168 2019-12-11 14:19:07

请问老师~~

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号