11
votes

When I write tf.keras.layers.LSTM, I get the warning

Note that this layer is not optimized for performance. Please use tf.keras.layers.CuDNNLSTM for better performance on GPU.

But when I change the layer to tf.keras.layers.CuDNNLSTM, I get the error

AttributeError: module 'tensorflow.python.keras.api._v2.keras.layers' has no attribute 'CuDNNLSTM'

Tensorflow version is 2.0.0-alpha0, Keras version is 2.2.4-tf.

How can I fix this problem?

1
There is no CuDNNLSTM layer in tf 2.0 yet. See the available layers here tensorflow.org/versions/r2.0/api_docs/python/tf/keras/layersSreeram TP
Use tf.compat.v1.keras.layers.CuDNNLSTM(), not tf.keras.layers.CuDNNLSTM()Vlad

1 Answers

12
votes

In general, in TensorFlow 2.0 we should just use:

tf.keras.layers.LSTM

which, despite the warning, will use the GPU.

The warning message incorrectly existed in the 2.0.0-alpha0 version but has since been removed in 2.0.0-beta1

If for some reason you specifically need the original implementation of tf.keras.layers.CuDNNLSTM then you can use tf.compat.v1.keras.layers.CuDNNLSTM but this would be an edge case.