【发布时间】:2018-10-03 20:43:59
【问题描述】:
在高级深度学习库Keras中,有多种循环层;这些包括LSTM(长期短期记忆)和CuDNNLSTM。根据Keras documentation,CuDNNLSTM 是:
由 CuDNN 支持的快速 LSTM 实现。 只能在 GPU 上运行,带有 TensorFlow 后端。
我相信 Keras 会尽可能自动使用 GPU。根据TensorFlow build instructions,要拥有一个正常工作的 TensorFlow GPU 后端,您将需要 CuDNN:
您的系统上必须安装以下 NVIDIA 软件:
- NVIDIA 的 Cuda 工具包 (>= 7.0)。我们推荐版本 9.0。有关详细信息,请参阅 NVIDIA 的文档。确保将相关的 Cuda 路径名附加到 LD_LIBRARY_PATH 环境变量中,如 NVIDIA 文档中所述。
- 与 NVIDIA 的 Cuda Toolkit 关联的 NVIDIA 驱动程序。
- cuDNN (>= v3)。我们推荐版本 6.0。有关详细信息,请参阅 NVIDIA 的文档,尤其是关于将适当的路径名附加到 LD_LIBRARY_PATH 环境变量的说明。
因此,CuDNNLSTM 与使用 TensorFlow GPU 后端的普通 LSTM 有何不同?当找到可用的 TensorFlow GPU 后端时,CuDNNLSTM 是否会被自动选择并替换正常的 LSTM?
【问题讨论】:
-
我猜他们是一样的?它可能只在没有 GPU 的情况下运行时有所不同。
-
LSTM 的选择 如果要将模型部署到生产中,CuDNNLSTM 很重要。例如,到目前为止,Google Cloud Platform 允许您在其“AI Platform”中仅使用 CPU 机器。因此,如果您使用 CuDNNLSTM 训练模型,您将无法部署它。
标签: tensorflow keras lstm