TensorFlow提供以下功能来创建RNN:rnn()
,dynamic_rnn()
,state_saving_rnn()
和bidirectional_rnn()
。我想知道你什么时候想要使用state_saving_rnn()
函数?
我猜这是针对大型RNN的。展开时,您可以有效地获得可能非常深的网络,如果每个层都有很多参数,GPU可能会耗尽内存。所以该函数会在每个时间步长(可能是磁盘或CPU的内存而不是GPU的?)中保存状态。这是一般的想法吗?
你能提供一些代码片段,或指向使用它的一些代码的指针吗?特别是,我想了解何时调用状态保护程序(在每个时间步骤?)。
答案 0 :(得分:1)
这里有一些关于其使用的文档和示例: https://www.tensorflow.org/versions/master/api_docs/python/contrib.training.html
特别要查找tf.contrib.training.SequenceQueueingStateSaver部分。