我已经在具有Cuda 9.0和CuDNN 7.0.5和 Vanilla Python 2.7的Ubuntu 16.04上安装了TensorFlow 1.7,尽管它们的CUDA和CuDNN示例都运行良好,并且TensorFlow看到了GPU(因此运行了一些TensorFlow示例),但那些使用CuDNN的示例(就像大多数CNN示例一样)没有。他们因以下引用消息而失败:
2018-04-10 16:14:17.013026: I tensorflow/stream_executor/plugin_registry.cc:243] Selecting default DNN plugin, cuDNN
25428 2018-04-10 16:14:17.013100: E tensorflow/stream_executor/cuda/cuda_dnn.cc:403] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
25429 2018-04-10 16:14:17.013119: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:369] driver version file contents: """NVRM version: NVIDIA UNIX x86_64 Kernel Module 384.130 Wed Mar 21 03:37:26 PDT 2018
25430 GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9)
25431 """
25432 2018-04-10 16:14:17.013131: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:112] version string "384.130" made value 384.130.0
25433 2018-04-10 16:14:17.013135: E tensorflow/stream_executor/cuda/cuda_dnn.cc:411] possibly insufficient driver version: 384.130.0
25434 2018-04-10 16:14:17.013139: E tensorflow/stream_executor/cuda/cuda_dnn.cc:370] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
25435 2018-04-10 16:14:17.013143: F tensorflow/core/kernels/conv_ops.cc:712] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms)
打开大量的VLOG消息(请参阅下面的链接以了解如何执行此操作)并不会产生任何其他相关消息。
这里的关键消息可能是“选择默认的DNN插件cuDNN”,因为看代码我可能认为它无法加载cuDNN库模块,但就我所知,这实际上是正常的(因此不是警告)问题可能是其他原因。
例如,在早期版本中,“CUDNN_STATUS_NOT_INITIALIZED”消息似乎是由TF过于积极地分配内存(在TF GitHub问题列表中找到此消息)引起的,因此CuDNN无法初始化,但是我尝试了这些补救措施(包括重置GPU,然后重新启动),但它们没有帮助。
关于下一步应该尝试的任何想法?
最佳答案
好的,我发现这是由我安装了错误版本的cuDNN引起的,因此我怀疑它实际上并未找到正确的共享库。
基本上,我安装了cuDNN v7.1.2 for Cuda 9.1
而不是cuDNN v7.1.2 for Cuda 9.0
,这似乎已经导致它默默地失败了-尽管我本来希望收到一条错误消息。请注意,我已经运行了详细的VLOG,(有关如何执行Turning on TF Logs的更多信息,请参见我在这篇文章上的回答):
当我安装cuDNN v7.1.2 for Cuda 9.0
时,实际上确实找到了它,并提示该版本不够新-实际上,真正的问题是它不够旧,但是至少我有一些实际数据可以使用。
最后,cuDNN v7.0.5 for Cuda 9.0
是我所需要的,并且有效。
关于python - 尝试运行TensorFlow时CUDNN_STATUS_NOT_INITIALIZED,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49770465/