Tensorflow报错“Could not find ‘cudart64_6.dll”

声明:我使用的版本

  • tensorflow-gpu==1.4.0
  • CUDA (release 8.0, V8.0.60) 8.0版
  • cudnn(6.0)

但是最近在使用tensorflow时,突然报错

OSError: [WinError 126] 找不到指定的模块/Could not find ‘cudart64_6.dll’

原因:在tensorflow调用NVIDIA时缺少了cudart64_6.dllcudart64_6.dll是在cudnn6.0里的文件,这可能与我的软件自动升级有关,cudnn升级后造成和tensorflow1.4要求的版本不一致从而导致错误。


  这里说明一下如何查看tensorflow-gpu对应的CUDA版本和cudnn版本的问题:(预先安装好Anaconda的前提下)
在路径D:\Anaconda3\Lib\site-packages\tensorflow\python\platform下可以看到build_info.py文件
Tensorflow报错“Could not find ‘cudart64_6.dll”_第1张图片

msvcp_dll_name = 'msvcp140.dll'
cudart_dll_name = 'cudart64_80.dll'
cuda_version_number = '8.0'  # CUDA8.0
nvcuda_dll_name = 'nvcuda.dll'
cudnn_dll_name = 'cudnn64_6.dll'
cudnn_version_number = '6'   # cudnn6.0

这是在tensorflow1.4.0中的build_info.py文件,可以看出其对应的CUDA为8.0,cudnn为6.0。

tensorflow1.4以上的版本都可以通过这种方法查看对应的CUDA和cudnn版本。

在tensorflow1.3版本中这种方法不适用,因为没有build_info.py这个文件(亲测)


首先要会查看自己的CUDA版本,确定一下是否需要升级或者卸载重新安装

方法1:

在目录C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA下可以看到安装的CUDA版本
Tensorflow报错“Could not find ‘cudart64_6.dll”_第2张图片

方法2:

打开cmd,进入命令行模式,输入命令

nvcc –version 

Tensorflow报错“Could not find ‘cudart64_6.dll”_第3张图片


cudnn的下载

  • cudnn下载传送门 只不过需要注册账户,如果不想麻烦的话可以直接评论我,我可以发过去。要注意与自己显卡的类型相对应。

cudnn不用安装,下在玩解压后如图:
Tensorflow报错“Could not find ‘cudart64_6.dll”_第4张图片
只需将cudnn里的三个文件夹里的文件复制到对应的NVIDIA文件下就行
Tensorflow报错“Could not find ‘cudart64_6.dll”_第5张图片

注意:是将cuda里的三个文件夹里的文件,不是将文件夹直接复制过去覆盖C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0路径下相同的文件夹。

你可能感兴趣的:(系统配置)