kateli1991

tensorflow:找不到dnn实现



我试图使用gpu在tensorflow上运行我的代码Keras CuDNNGRU,但它总是出现错误“Fail to find dnn implementation”,即使我已经安装了CUDA和CuDNN。在

我已经重新安装CUDA和CuDNN好几次了,并将CuDNN版本从7.2.1升级到了7.5.0,但它并没有修复任何问题。我还尝试在Jupyter笔记本和python编译器(在终端上)上运行我的代码,结果是一样的。这是我的硬件和软件的详细情况。在

  1. 特斯拉V100 PCIE 16GB
  2. Ubuntu 18.04版
  3. 英伟达-SMI 384.183
  4. CUDA 9.0版
  5. CuDNN 7.5.0版
  6. 迷你康达3
  7. Python 3.6
  8. 张量流量1.12
  9. Keras 2.1.6

这是我的密码。在

encoder_LSTM = tf.keras.layers.CuDNNGRU(hidden_unit,return_sequences=True,return_state=True)
encoder_LSTM_rev=tf.keras.layers.CuDNNGRU(hidden_unit,return_state=True,return_sequences=True,go_backwards=True)

encoder_outputs, state_h = encoder_LSTM(x)
encoder_outputsR, state_hR = encoder_LSTM_rev(x)

这是错误信息。在

^{pr2}$

有什么想法吗?谢谢你

更新:我试图将cudn版本从7.5.0降到7.1.4,但结果还是一样。在


已被浏览了10613次
6 日,22 小时 之前提问
3 个回答
fefe Tyson

对于使用TF2.0cuDNN-7的Cuda 10.0遇到此问题的人,很可能是因为您意外地将cuDNN从7.6.2升级到了>7.6.5。尽管TF文档声明任何>=7.4.1正在工作,但事实并非如此!降级为CudNN如下:

sudo apt-get install  no-install-recommends \
  cuda-10-0 \
  libcudnn7=7.6.2.24-1+cuda10.0  \
  libcudnn7-dev=7.6.2.24-1+cuda10.0

将来,您可以在Ubuntu/Debian中将cuDNN的更新标记为aptitude

^{pr2}$
评论 - 2020年7月29日 15:36
fefe Tyson

你测试过你的安装(cuda、cudnn、tensorflow gpu)了吗?在

测试cuda: 如果出现以下情况,请先检查:

$ nvcc -V

显示正确版本的cuda工具箱。 然后可以使用以下过程进行测试:

首先(需要几分钟):

^{pr2}$

然后:

$ cd ~/NVIDIA_CUDA-9.0_Samples/bin/x86_64/linux/release
$./deviceQuery

如果你在最后得到:“结果:通过”,你都很好!在

测试用例:

$ cp -r /usr/src/cudnn_samples_v7/ $HOME
$ cd $HOME/cudnn_samples_v7/mnistCUDNN
$ make clean && make
$ ./mnistCUDNN

结果应该是:“考试通过了!”在

测试tensorflow gpu:

如果cuda和cudnn正常工作,您可以使用以下工具测试tensorflow安装:

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

我建议您在conda环境中安装tensorflow,方法是:

conda create  name tf_gpu tensorflow-gpu

对我来说(在经历了很多问题之后),它运行得很好。在

来源:gpu installation for Ubuntu 18.04tensorflow-gpu installation

评论 - 2020年7月29日 15:36
fefe Tyson

配置你的GPU以允许增长对我的tf2.0有用。几个月前,我在另一个问题上找到了这个解决方案,当时我在运行tf2.0之前遇到了一个问题。不记得在哪里了。在

加上以下几点,可能是好的。在

from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession
config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)
评论 - 2020年7月29日 15:36

最新Python问答

推荐Python问答