【发布时间】:2016-02-17 17:51:14
【问题描述】:
我刚刚开始使用 TensorFlow,我正在尝试实现一个非常简单的 RNN。 RNN 将x 作为输入,y 作为输出,并且只包含一个以x 和它之前的输出作为输入的层。这是我想到的那种事情的图片:
问题是,我看不到任何通过 TensorFlow API 构建包含循环的图的方法。每当我定义张量时,我都必须指定它的输入是什么,这意味着我必须已经定义了它的输入。所以有一个先有鸡还是先有蛋的问题。
我什至不知道定义一个带循环的图是否有意义(首先计算什么?我是否必须定义 softmax 节点的初始值?)。我尝试使用变量来表示先前的输出,然后在每次输入训练样本后手动获取y 的值并将其存储在变量中。但这会很慢,除非有办法在图表本身中表示这个过程(?)。
我知道 TensorFlow 教程展示了 RNN 的示例实现,但他们作弊并将 LSTM 模块从已经包含循环的库中拉出。总体而言,这些教程可以帮助您逐步了解如何构建某些东西,但它们可以更好地解释这个野兽是如何工作的。
那么,TensorFlow 专家,有没有办法构建这个东西?我该怎么做呢?
【问题讨论】:
-
你的变量想法似乎是一条路,如果你使用TensorFlow变量/分配操作应该不会慢
-
但我不是必须打电话给
sess.run(y_prev.assign(y))并一次运行一个样本吗?或者你的意思是我应该把它和@Ishamael 描述的展开策略结合起来?