【发布时间】:2020-03-06 13:50:29
【问题描述】:
作为 GRU 训练的一部分,我想检索隐藏状态张量。
我定义了一个有两层的 GRU:
self.lstm = nn.GRU(params.vid_embedding_dim, params.hidden_dim , 2)
forward函数定义如下(以下只是部分实现):
def forward(self, s, order, batch_size, where, anchor_is_phrase = False):
"""
Forward prop.
"""
# s is of shape [128 , 1 , 300] , 128 is batch size
output, (a,b) = self.lstm(s.cuda())
output.data.contiguous()
out 的形状是:[128 , 400](128 是每个样本嵌入到 400 维向量中的样本数)。
我知道out 是最后一个隐藏状态的输出,因此我希望它等于b。但是,在我检查了这些值之后,我发现它确实相等,但 b 包含以不同顺序的张量,例如 output[0] 是 b[49]。我在这里错过了什么吗?
谢谢。
【问题讨论】:
标签: tensorflow deep-learning pytorch lstm recurrent-neural-network