本文主要是介绍tensorflow 1.13.1 安装采坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
环境:
win10 x64位,cuda10.1,cudnn 7.5,vs2013,vs2015 distributed ,GTX1060
按照网上的教程安装,如下面博客
https://blog.csdn.net/huanyingzhizai/article/details/89298964
我最后的安装位置:anaconda2下面的虚拟环境py3下面新建虚拟环境:tensorflow-gpu
安装的tensorflow库:
坑:
包括conda安装和pip安装完提示安装成功,但是一旦import tensorflow as tf就会直接报错:
提示dll加载失败,找不到指定的模块。
试过重装很多次,都还是一样,报同样的错误,原因是tensorflow版本和cuda版本不匹配导致的。我的cuda是10.1版本,而tensorflow最新的是1.13.1(今天刚出了1.14.0还没提供下载),只支持到cuda 10.0,因此一直会提示dll加载失败。换cuda版本实在是工作量有点大,牵扯到我的caffe和torch环境,尤其caffe得重新编译,麻烦的很,想想还是算了,找找其他办法能不能解决。
解决办法:
为什么会提示dll加载失败呢?都是那些dll加载失败呢??终于在一篇博客找到了希望,参考的博客:
https://blog.csdn.net/l_mingo/article/details/88110945
按照博客方法打开命令行输入以下命令查看依赖的是哪些dll:
"c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\dumpbin.exe" /dependents C:\Users\username\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyd
接下来就会输出目前tensorflow所依赖的dll库:
按照博客中的方法:在命令行中使用:where cublas64_100.dll 的命令来查找这些库是不是在系统的path中,但是我使用了where之后只是显示了下面的这种提示:
这只是提示在系统path中没找到这些dll。但是,我使用一个文件搜索神器(Everything)把这些dll挨个搜了一遍:如下图所示
发现不在C:/windows/system32文件夹下,但是在其他很多文件夹中存在这个文件,然后我就按博客所说的,将搜到的这个dll随便复制一个放在C:/windows/system32文件夹下面就可以了。其他dll文件都找到了,但是有一个文件:cusolver64_100.dll ,搜遍了整个电脑都没有,但有一个cusolver64_10.dll,两个文件名挺像的,应该就是版本不一样吧:
试着将cusolver64_10.dll复制一份,重命名为cusolver64_100.dll,然后放到C:/windows/system32文件夹下,奇迹发生了,输入import tensorflow 没报错,接着输入下面两条命令试试能不能使用GPU:
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
竟然成功了,成功的打印了GPU信息,折腾了一天,终于搞定了。
总结:
我没有将cuda10.1换成其他版本,因为我的caffe和torch都是基于cuda10.1的,要是重新将cuda降级,工作量会更大,caffe得重新编译,torch得重装,还好解决了,环境问题真是头疼!
这篇关于tensorflow 1.13.1 安装采坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!