我试图用TensorFlow与GPU并得到了以下错误:错误是什么:`加载的运行时CuDNN库:5005,但源代码是用5103`编译的?
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上的网页后,我意识到,读取错误如下实际上是更有帮助:
Loaded runtime CuDNN library: 5005 but source was compiled with 5103.
去除括号使错误做出更多的感觉(虽然我想知道/了解括号的作用是在错误信息,以方便用户调试),因为它似乎加载CuDNN文库5005(在文献中)但是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版本(以某种方式)。
是否有人更准确地知道错误究竟意味着什么(并提供解决方案以解决我所链接的问题)
这意味着Tensorflow发现cuDNN 5.0您的计算机上,但期待使用(即是针对编译)cuDNN 5.1。在错误输出中可能已经指出了一个简单的修复:升级 –
@RobertCrovella你怎么知道它是什么意思?有4个数字报告,所有4个数字都是4位数,而cuDNN版本没有这样的报告。真的很混乱和不清楚,希望能找到这样干净的错误 –
@CharlieParker这是人们如何以编程方式对版本进行编码,为了将5.1.03放入一个整数中,可以删除点。点,以防万一你需要超过10个小的或100个补丁版本秒。TensorFlow开发者在打印邮件时,并没有打算将其格式化为人类可读的格式。不要在其中寻找根本的智慧,版本化只是一个(愚蠢的)惯例。见例如[semver](http://semver.org/)获取更多信息 – Drop