练习

  1. 你能想象 seq2seq RNN 的几个应用吗? seq2vec 的 RNN 呢?vex2seq 的 RNN 呢?
  2. 为什么人们使用编解码器 RNN 而不是简单的 seq2seq RNN 来自动翻译?
  3. 如何将卷积神经网络与 RNN 结合,来对视频进行分类?
  4. 使用dynamic_rnn()而不是static_rnn()构建 RNN 有什么好处?
  5. 你如何处理长度可变的输入序列? 那么长度可变输出序列呢?
  6. 在多个 GPU 上分配深层 RNN 的训练和执行的常见方式是什么?
  7. Hochreiter 和 Schmidhuber 在其关于 LSTM 的文章中使用了嵌入式 Reber 语法。 它们是产生字符串,如"BPBTSXXVPSEPE"的人造语法。查看 Jenny Orr 对此主题的不错的介绍。 选择一个特定的嵌入式 Reber 语法(例如 Jenny Orr 页面上显示的语法),然后训练一个 RNN 来确定字符串是否遵循该语法。 你首先需要编写一个函数,该函数能够生成训练批量,包含大约 50% 遵循语法的字符串,以及 50% 不遵循的字符串。
  8. 解决“How much did it rain? II”(下雨下了多久 II)Kaggle 比赛。 这是一个时间序列预测任务:它为你提供极化雷达值的快照,并要求预测每小时降水量。 Luis Andre Dutra e Silva 的采访对他在比赛中获得第二名的技术,提供了一些有趣的见解。 特别是,他使用了由两个 LSTM 层组成的 RNN。
  9. 通过 TensorFlow 的 Word2Vec 教程来创建单词嵌入,然后通过 Seq2Seq 教程来训练英法翻译系统。

附录 A 提供了这些练习的答案。