首页 文章

什么是TensorFlow中的动态RNN?

提问于
浏览
10

我对动态RNN(即 dynamic_rnn )是什么感到困惑 . 它在TensorFlow中返回 outputstate . 这些状态和输出是什么?在TensorFlow中,动态RNN中的动态是什么?

2 回答

  • 12

    动态RNN允许可变序列长度 . 您可能具有输入形状 (batch_size, max_sequence_length) ,但这将允许您在比 max_sequence_length 短的序列上运行RNN正确的时间步长 .

    相反,存在静态RNN,其期望运行整个固定RNN长度 . 在某些情况下,您可能更愿意这样做,例如,无论如何您将输入填充到 max_sequence_length .

    简而言之, dynamic_rnn 通常是您想要的可变长度顺序数据 . 它有一个 sequence_length 参数,它是你的朋友 .

  • 3

    虽然AlexDelPiero的回答是我在Google上搜索的,但最初的问题却与众不同 . 您可以查看有关LSTM及其背后的直觉的详细说明 . LSTM是RNN最常见的例子 .

    http://colah.github.io/posts/2015-08-Understanding-LSTMs/

    简短的回答是:状态是从一个时间步到另一个时间步的内部细节 . 输出是每个时间步长的输出张量 . 您通常需要将所有输出传递到下一个RNN层或最后一个RNN层的最后一个输出 . 要获得最后一个输出,您可以使用输出[:, - 1,:]

相关问题