【问题标题】:What kind of calculation does tf.nn.dynamic_rnn do with its input parameters?tf.nn.dynamic_rnn 对其输入参数做了什么样的计算?
【发布时间】:2017-06-10 22:53:18
【问题描述】:

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

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

【问题讨论】:

    标签: python tensorflow deep-learning recurrent-neural-network


    【解决方案1】:

    tf.nn.static_rnntf.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 比其动态对应物更快,因为它预先构建了图形。

    请注意,强烈建议使用tf.nn.dynamic_rnn

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

    【讨论】:

    • 感谢您的回答,但很抱歉,这并不能回答我的问题。我没有问 RNN 和 Dynamic_RNN 的区别。
    • 差异实际上回答了您的问题。动态 rnn 的计算类似于简单的 rnn,唯一的区别在我的回答中提到。如果您不明白,请仔细阅读参考博客文章。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 2021-04-26
    相关资源
    最近更新 更多