【问题标题】:how does tensorflow train RNNs?tensorflow 如何训练 RNN?
【发布时间】:2019-04-12 03:03:38
【问题描述】:

我刚刚通读并在此处运行代码:https://tomaxent.com/2017/04/26/LSTM-by-Example-using-Tensorflow-Text-Generate/

(这家伙抄袭了下面的 medium.com 文章,但我无法从我的工作计算机访问 medium.com); https://medium.com/towards-data-science/lstm-by-example-using-tensorflow-feb0c1968537

根据我之前的阅读,我的理解是,要训练 RNN,我们必须将它们“解包”到前馈网络 (FFN) 中执行一定数量的步骤(以及在时间 t 的“x”的额外输入"),并将其设置为使 FFN 中与 RNN 中单个权重对应的所有权重相等。

我正在查看代码,但没有看到任何“解包”步骤,甚至没有一个变量指示我们要解包的步骤数。

还有另一种训练 RNN 的方法吗?我只是错过了代码中定义该变量的行吗?

【问题讨论】:

  • RNN 是使用反向传播来训练的。的确,在每个时间步,权重都是相同的(直到它们在批次后更新)。

标签: python tensorflow lstm rnn


【解决方案1】:

如果我没记错的话,没有这样的“展开步骤”。我们通常“展开”RNN 以了解其正常工作(通过每个时间步骤)。 现在,来到 Tensorflow 实现,我发现这个 repo:MuhammedBuyukkinaci/TensorFlow-Text-Generator 非常有用,这可能会消除你的大部分疑虑。

其他有用的链接:

Tensorflow-RNN

Basic_Rnn_Cell

Static_RNN Cell

【讨论】: