首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow:从可变序列长度的bidirectional_rnn中获得输出

Tensorflow:从可变序列长度的bidirectional_rnn中获得输出
EN

Stack Overflow用户
提问于 2016-10-02 19:55:50
回答 1查看 930关注 0票数 3

对于变量的输入大小,我使用tf.nn.bidirectional_rnnsequence_length参数,并且我不知道如何获得小型批处理中每个示例的最终输出:

代码语言:javascript
复制
output, _, _ = tf.nn.bidirectional_rnn(forward1,backward1,input,dtype=tf.float32,sequence_length=input_lengths)

现在,如果我有固定的序列长度,我只需要使用output[-1]并得到最终的输出。在我的例子中,我有可变序列(它们的长度已知)。同样,这是前向和后向LSTM的输出吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-10-03 22:56:08

这个问题可以通过查看源代码rnn.py来回答。

对于具有动态长度的序列,源代码说:

如果提供sequence_length矢量,则执行动态计算。这种计算方法不计算RNN步骤超过最小批处理的最大序列长度(从而节省了计算时间),并适当地将示例的序列长度状态传播到最终的状态输出。

因此,为了获得实际的最后输出,您应该对结果输出进行切片。

对于bidirectional_rnn,源代码中写着:

一个元组( outputs,output_state_fw,output_state_bw),其中: outputs是一个长度为T的输出列表(每个输入一个),它们是深度级联的正向和反向输出。output_state_fw是正向神经网络的最终状态。output_state_bw是反向rnn的最终状态。

因此,输出是元组而不是张量。如果您愿意,可以将这个元组连接成一个向量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39821069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档