【问题标题】:How to select a proper API/implementation of an LSTM cell in TensorFlow?如何在 TensorFlow 中选择合适的 API/LSTM 单元的实现?
【发布时间】:2023-12-08 17:48:02
【问题描述】:

在 Tensorflow 中,同一任务在不同的 API 下有许多不同的实现。对于 LSTM 单元,可以找到许多实现,例如,

  1. tf.nn.rnn_cell.LSTMCell
  2. tf.contrib.rnn.LSTMBlockCell
  3. tf.keras.layers.LSTMCell
  4. tf.keras.layers.LSTM

我应该选择上述哪个实现?有通用的指导方针吗?例如,始终使用 tf.nn > tf.keras > tf.layers > tf。贡献。

在一个稍微相关的问题here(用于批量标准化)中,已批准的答案说 tf.contrib 不是一个好的选择,因为它用于早期实施。其中,KERAS API 也使用了 tf.nn。所以它看起来像 tf.nn > tf.keras > tf.contrib。

【问题讨论】:

    标签: tensorflow keras deep-learning lstm rnn


    【解决方案1】:

    这里RNN Performance 是对 TensorFlow 的一些建议。文档中的几个要点:

    • 在 NVIDIA GPU 上使用 tf.contrib.cudnn_rnn()
    • 使用tf.nn.dynamic_rnn() 而不是tf.nn.static_rnn()。可能他们的意思是,我们需要添加 sequence_length 以避免额外的计算。

    【讨论】:

      最近更新 更多