Keras - ImportError: cannot import name 'CuDNNLSTM'

Keras - ImportError: cannot import name 'CuDNNLSTM'

我正在尝试使用 CuDNNLSTM Keras 单元提高循环神经网络的训练速度(文档 here)。

当我运行:

from keras.layers import Bidirectional, CuDNNLSTM

我收到这个错误:

ImportError: cannot import name 'CuDNNLSTM'

我的配置是 Keras 2.0.8,python 3.5,tensorflow-gpu 1.4.0(全部由 Anaconda 管理),我同时安装了 CUDA 8.0 和 cudnn 6.0,nvidia 依赖项应该没问题张量流 (here)。我的代码设置使 Keras 有效地使用了 tensorflow 后端,并且除了以 CuDNN* 开头的层之外的每一层都工作正常。

有人知道这个导入错误的来源吗?

事实证明,keras 2.0.8 没有更新版本中出现的此类层的代码。

我用pip升级到最新版本:

pip install --upgrade keras

现在一切正常。

在 conda 中它将是(截至 2019 年 11 月)

conda config --add channels conda-forge
conda install keras==2.3.0

对于 Tensorflow-2:您可以只使用没有激活函数的 LSTM,它会自动使用 CuDNN 版本

这些图层在最新版本中已被弃用。
详细教程可以看this Keras guide