为什么要在TensorFlow中使用state_saving_rnn()函数?

时间:2016-09-15 07:03:28

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

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

我猜这是针对大型RNN的。展开时,您可以有效地获得可能非常深的网络,如果每个层都有很多参数,GPU可能会耗尽内存。所以该函数会在每个时间步长(可能是磁盘或CPU的内存而不是GPU的?)中保存状态。这是一般的想法吗?

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

1 个答案:

答案 0 :(得分:1)

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

特别要查找tf.contrib.training.SequenceQueueingStateSaver部分。