如何强制Keras使用TensorFlow GPU后端

5

我知道这是一个流行的问题之一,但迄今为止,没有任何解决方案适用于我。

我正在运行一个遗留代码,它使用的是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 库无法加载的错误? - learner
是的,我尝试在SO中搜索这些错误,但没有任何解决方案起作用。机器上已经安装了Cuda 10.0。设置LD_LIBRARY_PATH也没有帮助。 - Nagabhushan S N
你能告诉我们错误具体是什么吗? - learner
请发布所有错误信息,没有它们我们无法真正帮助您。 - Dr. Snoopy
2个回答

2

首先,我假设你正在使用NVIDIA GPU。出现问题的原因很可能是你没有安装CUDA或者安装了错误版本的CUDA。当然,你需要确认你已经安装了最新的NVIDIA驱动程序。如果你查看这个列表,你会发现tensorflow_gpu-1.13.1需要CUDA 10.0和CudNN 7.4。要通过anaconda安装它们,请使用以下命令。

conda install cudatoolkit==10.0.130

关于 cudnn 7.4,请查看存档


我在conda环境中安装了cudatoolkit(10.0.130)和cudnn(7.6.5.32)。这样不就足够了吗?我还需要从NVIDIA网站单独下载cudnn吗? 无论如何,在conda环境中安装这两个后,GPU仍然未被检测到。 - Nagabhushan S N
1
@NagabhushanSN 通常情况下,tf对版本(到小版本)非常挑剔,所以如果您安装了cuda 10.1.XXX,则该版本的tf将无法工作,因为它需要10.0.XXX。我认为cudnn也是如此,但我不确定。很高兴你解决了这个问题! - smerkd

0

先安装tensorflow,然后再安装keras就可以了!

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接