如何强制 keras 使用 tensorflow GPU 后端

Posted

技术标签:

【中文标题】如何强制 keras 使用 tensorflow GPU 后端【英文标题】:How to force keras to use tensorflow GPU backend 【发布时间】:2021-11-28 04:09:22 【问题描述】:

我知道这是热门问题之一,但到目前为止,没有一个解决方案对我有用。

我正在运行用tensorflow v1.13.1keras v2.2.4 编写的旧代码。我无法修改代码以运行最新的 tensorflow 版本。由于 keras 现在已合并到 tensorflow 中,因此我在通过 pip 安装特定版本的 tensorflow 和 keras 时遇到了问题。我发现 anaconda 可以选择使用上述版本安装 keras 和 tensorflow。所以,我安装了它

conda install -c conda-forge keras-gpu=2.2.4 tensorflow-gpu=1.13.1

它安装了版本并且一切正常。但它不使用 GPU,而是在 CPU 上运行。我注意到 anaconda 安装了 tensorflow 的 CPU 和 GPU 版本,我想这就是它默认为 CPU 版本的原因。所以,我的问题是,我怎样才能强制它使用 GPU 版本?

PS:有很多答案建议删除 tensorflow 的 CPU 版本。但是当我尝试删除 CPU 版本时,conda 会卸载包括 keras 在内的所有内容。所以,我认为应该有一种方法可以在安装 tensorflow-gpu 时使用它们。感谢您提供这方面的任何帮助!

【问题讨论】:

程序运行时是否出现无法加载xxx库之类的错误? 是的,我愿意。我尝试在 SO 中搜索这些错误,但没有一个解决方案有效。机器中已经安装了 Cuda 10.0。设置 LD_LIBRARY_PATH 也没有帮助 你能告诉我们究竟是什么错误吗? 请发布所有错误,没有它们我们无法真正帮助您。 【参考方案1】:

先安装 tensorflow,再安装 keras!

conda install tensorflow-gpu=1.13.1
conda install keras-gpu=2.2.4

【讨论】:

【参考方案2】:

让我先假设您使用的是 NVIDIA GPU。这很可能是由于您没有安装 CUDA 或版本错误。不过,请仔细检查以确保您还拥有最新的 NVIDIA 驱动程序。如果您查看this list,您可以看到 tensorflow_gpu-1.13.1 使用 CUDA 版本 10.0 和 CudNN 7.4。要通过 anaconda 安装它们,请使用以下命令。

conda install cudatoolkit==10.0.130

至于 cudnn 7.4,请查看 archive

【讨论】:

我在 conda 环境中安装了 cudatoolkit (10.0.130) 和 cudnn (7.6.5.32)。这还不够吗?我必须从 NVIDIA 网站单独下载 cudnn 吗?无论如何,在 conda 环境中也安装了这两个后,没有检测到 GPU。 @NagabhushanSN 通常 tf 对版本非常挑剔(到次要版本)所以让我们说如果您安装了 cuda 10.1.XXX 那么该版本的 tf 将无法工作,因为它需要 10.0.XXX .我认为 cudnn 也是如此,但我不确定。很高兴你知道了!

以上是关于如何强制 keras 使用 tensorflow GPU 后端的主要内容,如果未能解决你的问题,请参考以下文章

keras 后端 theano/tensorflow

如何减少 Tensorflow/Keras 使用的 CPU 数量?

如何使用 tensorflow 在 keras 中禁用 GPU?

如何使用 Tensorflow 张量设置 Keras 层的输入?

是否有 R 命令使 Keras Tensorflow-GPU 在 CPU 上运行?

如何让 Keras 在 Anaconda 中使用 Tensorflow 后端?