lstm的第一步输入

来源:8-18 计算图构建-图片与词语embedding

慕粉9315168

2019-12-02

老师您的板书写的是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回答

静以修身666

2019-12-13

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

1
1
慕粉9315168
非常感谢!
2019-12-27
共1条回复

正十七

2019-12-15

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
0

慕粉9315168

提问者

2019-12-11

请问老师~~

0
0

深度学习之神经网络(CNN/RNN/GAN)算法原理+实战

深度学习算法工程师必学,深入理解深度学习核心算法CNN RNN GAN

2617 学习 · 935 问题

查看课程