Keras - ImportError:无法导入名称'CuDNNLSTM'

Posted

技术标签:

【中文标题】Keras - ImportError:无法导入名称\'CuDNNLSTM\'【英文标题】:Keras - ImportError: cannot import name 'CuDNNLSTM'Keras - ImportError:无法导入名称'CuDNNLSTM' 【发布时间】:2018-05-31 03:28:57 【问题描述】:

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

当我跑步时:

from keras.layers import Bidirectional, CuDNNLSTM

我收到此错误:

ImportError: 无法导入名称“CuDNNLSTM”

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

谢谢。 CuDNNGRU 的情况是否相同?以及您可以指出的任何来源,以向我的队友证明这一点。【参考方案2】:

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

我用pip升级到最新版本:

pip install --upgrade keras

现在一切正常。

【讨论】:

【参考方案3】:

这些层在最新版本中已被弃用。 详细教程可以看thisKeras指南

【讨论】:

【参考方案4】:

在 conda 中(截至 2019 年 11 月)

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

【讨论】:

以上是关于Keras - ImportError:无法导入名称'CuDNNLSTM'的主要内容,如果未能解决你的问题,请参考以下文章

tensorflow.keras.layers:ImportError:无法导入名称“CuDNNLSTM”

ImportError:无法从 keras 导入名称“_obtain_input_shape”

无法导入TensorFlow和Keras

ImportError:无法导入名称“model_to_dot”

ImportError: 无法导入 pydot。您必须安装 pydot 和 graphviz 才能使 `pydotprint` 工作

ImportError:无法导入名称发现