我试图将 TensorFlow 与 GPU 一起使用,但出现以下错误:
I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla K20m, pci bus id: 0000:02:00.0)
E tensorflow/stream_executor/cuda/cuda_dnn.cc:347] Loaded runtime CuDNN library: 5005 (compatibility version 5000) but source was compiled with 5103 (compatibility version 5100). If using a binary install, upgrade your CuDNN library to match. If building from sources, make sure the library loaded at runtime matches a compatible version specified during compile configuration.
F tensorflow/core/kernels/conv_ops.cc:457] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)
当然,我正在尝试修复此错误(尽管已经询问过Loaded runtime CuDNN library: 5005 (compatibility version 5000) but source was compiled with 5103 (compatibility version 5100)),但我想了解这个错误。我总是在发布(寻求帮助)之前尝试自己解决(编码)问题,但我什至很难开始这个问题,因为错误消息对我来说似乎有点神秘/不清楚,我似乎找不到了解错误含义的好资源。
为了理解错误,我关注似乎是错误开始的那一行:
Loaded runtime CuDNN library: 5005 (compatibility version 5000) but source was compiled with 5103 (compatibility version 5100).
在阅读了一些似乎相关的 github 页面后,我意识到如下阅读错误实际上更有帮助:
已加载运行时 CuDNN 库:5005,但源代码是用 5103 编译的。
删除括号使错误更有意义(尽管我想了解/知道括号在错误消息中的作用以方便调试),因为它似乎加载了 CuDNN 库 5005(在级别UNIX / OS),但TensorFlow(用于python)是用我猜是版本5103编译的。显然,如果TensorFlow库使用根据5103的API,但“真正的”API与(cuda)深度学习交谈库 CuDNN 是 5005 版,很明显这将是一个问题。虽然他们只是猜测发生了什么。
我的第一个困惑是,据我所知,没有 CuDNN 5005 或 5103 这样的东西。如果能确定这部分错误意味着什么,这样我就可以开始尝试真正调试它,这真是太棒了。据我所知,当我使用时,module list
我正在使用:
cudnn/5.0
我的第二个困惑是我忽略的括号及其含义:
Loaded runtime CuDNN library: 5005 (compatibility version 5000)
but source was compiled with 5103 (compatibility version 5100)
老实说,我不知道“兼容版本 XXXX”是什么意思。也许它建议为 CuDNN 安装 5000 版本(无论这意味着什么)(这仍然令人困惑,因为没有 5000 版本的 CuDNN)并编译使用 CuDNN 版本 5100 的 TensorFlow 版本(不知何故)。
是否有人更准确地知道错误的确切含义(并为我链接的问题提供他们的解决方案?)