tf.nn.dynamic_rnn对其输入参数进行了什么样的计算?

What kind of calculation does tf.nn.dynamic_rnn do with its input parameters?

tf.nn.dynamic_rnn执行什么样的计算?它如何使用参数 cellinputs(创建结果)?

我在 documentation 中查找过,但没有找到解释。

tf.nn.static_rnn 对比 tf.nn.dynamic_rnn

在内部,tf.nn.static_rnn 为固定的 RNN 长度创建展开图。这意味着,如果您使用具有 200 个时间步长的输入调用 tf.nn.static_rnn,您将创建一个具有 200 个 RNN 步骤的静态图。首先,图形创建速度慢。其次,您无法传入比最初指定的更长的序列 (> 200)。

tf.nn.dynamic_rnn 解决了这个问题。它在执行时使用 tf.while_loop 动态构建图形。这意味着图形创建速度更快,并且您可以提供可变大小的批次。

性能如何?

您可能认为 tf.nn.static_rnn 比其动态对应物更快,因为它预先构建了图表。

Please note, it is strongly encouraged to use tf.nn.dynamic_rnn.

参考:http://www.wildml.com/2016/08/rnns-in-tensorflow-a-practical-guide-and-undocumented-features/