如何在 TensorFlow 中 select 正确 API/implementation LSTM 单元?
How to select a proper API/implementation of an LSTM cell in TensorFlow?
在 Tensorflow 中,同一任务在不同 API 下有许多不同的实现。对于 LSTM 单元,可以找到许多实现,例如,
我应该select执行上面的哪一个?有一般准则吗?例如总是使用 tf.nn > tf.keras > tf.layers > tf.贡献。
在一个稍微相关的问题 (对于批量归一化)中,批准的答案说 tf.contrib 不是一个好的选择,因为它是早期实施。其中,KERASAPI也使用了tf.nn。所以它看起来像 tf.nn > tf.keras > tf.contrib.
这里 RNN Performance 是一些关于 TensorFlow 的建议。文档中的几个要点:
- 在 NVIDIA GPU 上使用
tf.contrib.cudnn_rnn()
;
- 使用
tf.nn.dynamic_rnn()
而不是 tf.nn.static_rnn()
。可能他们的意思是,我们需要添加 sequence_length
以避免额外的计算。
在 Tensorflow 中,同一任务在不同 API 下有许多不同的实现。对于 LSTM 单元,可以找到许多实现,例如,
我应该select执行上面的哪一个?有一般准则吗?例如总是使用 tf.nn > tf.keras > tf.layers > tf.贡献。
在一个稍微相关的问题
这里 RNN Performance 是一些关于 TensorFlow 的建议。文档中的几个要点:
- 在 NVIDIA GPU 上使用
tf.contrib.cudnn_rnn()
; - 使用
tf.nn.dynamic_rnn()
而不是tf.nn.static_rnn()
。可能他们的意思是,我们需要添加sequence_length
以避免额外的计算。