这是tensorflow和cuda之间的匹配问题,笔者在最初接触神经网络学习的时候,tensorflow1的时候确实没能成功使用,当时是使用pytorch进行了学习。
后来笔者探索了一番学习后,转战linux和win10,对环境配置有了一定的理解,重新回到win10,成功使用了tensorflow2.2版本训练与检测。然而最后因为一些需求重新使用tensorflow-gpu版本训练yolov3的时候还是出现了问题。问题如下:
1.ImportError: DLL load failed: 找不到指定的模块 Failed to load the native TensorFlow runtime
2.或者是出现5、6行File然后报一个错,具体我忘了,找了搜索历史没找到
笔者使用环境:· tensorflow-gpu==1.13.
· numpy:1.17.4
keras:2.1.5
笔者是跟随这位大佬学习的,大家有空可以看他的内容
(2条消息) 神经网络学习小记录42——windows下的tensorflow-gpu=1.13.2环境配置_Bubbliiiing的学习小课堂-CSDN博客
对于错误分析:从网上看到的大多数原因是cuda cudnn 和tensorflow的版本匹配问题。
笔者本身自己ananconda虚拟环境中有tensorflow==2.2.0对应的cuda是10.1,cudnn7.6.5.32
cuda是直接装在c盘的,所以如果再安装cuda10.0笔者试过tf2可能无法正常使用,但是很奇怪现在我cuda10.0和10.1是共存c盘而且tf2能正常使用,但是tf1仍然无法使用。
解决方案:最后想方设法让tensorflow==1.13.2和cuda10.0对接上,我查找了怎么给anaconda虚拟环境配cuda,(2条消息) 使用Anaconda 创建指定cuda 版本的虚拟环境_matrix273的博客-CSDN博客,在这篇文章中底部,仿照它的指令conda install cudatoolkit=9.0 cudnn=7.3.1
我在存tensorflow-gpu==1.13.2的虚拟环境中使用命令:
conda install cudatoolkit=10.0 cudnn=7.6.5
最后似乎只是成功安装了cudatoolkit=10.0,cudnn报错说源中没找到对应版本,但是我再运行的时候能够成功使用tensorflow-gpu==1.13.2运行yolov3训练脚本。