【问题标题】:Why would you want to use the state_saving_rnn() function in TensorFlow?为什么要在 TensorFlow 中使用 state_saving_rnn() 函数?
【发布时间】:2016-09-15 07:03:27
【问题描述】:

TensorFlow 提供以下函数来创建 RNN:rnn()dynamic_rnn()state_saving_rnn()bidirectional_rnn()。我想知道你什么时候想使用state_saving_rnn() 函数?

我猜这是针对大型 RNN 的。当通过时间展开时,您有效地获得了一个潜在的非常深的网络,如果每一层都有很多参数,GPU 可能会耗尽内存。因此该函数将在每个时间步保存状态(可能保存到磁盘或可能保存到 CPU 的内存而不是 GPU 的内存?)。这是大意吗?

您能否提供一些代码 sn-p,或指向使用它的一些代码的指针?特别是,我想了解何时调用状态保护程序(在每个时间步?)。

【问题讨论】:

    标签: out-of-memory tensorflow recurrent-neural-network


    【解决方案1】:

    这里有一些关于其使用的文档和示例: https://www.tensorflow.org/versions/master/api_docs/python/contrib.training.html

    特别寻找 tf.contrib.training.SequenceQueueingStateSaver 部分。

    【讨论】:

    • 谢谢皮特。很抱歉我错过了这个,有时很难在 TF 的文档中找到您要查找的内容。使用谷歌搜索实际上更容易:我刚刚用谷歌搜索了“site:tensorflow.org state_saving_rnn”,你的链接是#5。现在我会知道的。 ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 2015-09-22
    • 2014-03-07
    • 2018-10-15
    • 2018-03-12
    相关资源
    最近更新 更多