由于最近要跑神经网络,因此需要安装tensorflow,然后百度上面搜了一大堆,尝试了很多很多方法, 先是下对应的CUDA和CUDNN,版本号也和tensorflow对上了,各种环境变量和奇奇怪怪的东西折腾了半天,尼玛的GPU版本的还是报错!!!
之后使用北大教程里面Anaconda虚拟环境的方法,直接在虚拟环境中安装相应版本的python,CUDA,cudnn,tensorflow,
北大教程:https://www.bilibili.com/video/BV1B7411L7Qt
最后在Anaconda Prompt中成功调用GPU,他妈的当时可把老子激动坏了,心想终于可以开始跑我的神经网络了
后面我到PyCharm使用这个虚拟环境,结果他妈比的又开始报错了,各种dll文件缺失。
就比如这种:Could not load dynamic library ‘cudart64_101.dll‘; dlerror: cudart64_101.dll not found
然后我就搜网上的方法,大部分都是缺啥找啥,然后我就把各个dll文件找过来再放进,尼玛的,折腾了半天还是没有用。
最后我静下心来仔细思考了下,既然在Anaconda Prompt是可以的,同一个虚拟环境为什么在PyCharm就不行呢?
于是我就开始检查PyCharm里面运行的tensorflow是不是我虚拟环境里面配的(因为我之前可能装了好几个,说不定混了),结果发现,问题不在这
import tensorflow as tf
print(tf.__version__)
print(tf.__path__)
这就说明虚拟环境是对的,然后我又是找啊找,最后找到这篇文章,尼玛的,还真成功了!!!!
https://zhuanlan.zhihu.com/p/72615307
实际上就是路径的问题,这位大佬属实牛逼,问题就出在path上面,PyCharm找到的虚拟环境是不完整的,如这位大佬所说,PyCharm中PATH的值会莫名缺失Anaconda下相应虚拟环境的PATH相关值。如果你根据大佬的方法在Anaconda Prompt打开PyCharm没有报错,那么就是这个问题。
打开后运行测试代码
import tensorflow as tf
print(tf.__version__)
print(tf.test.is_gpu_available())
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊,折腾了一天总算成功了。
总结:个人感觉,网上那种缺dll文件就下载补上去的方法有的时候可以,有的时候不行,但终究是指标不治本,不是解决问题的根本办法。有的时候,要带着思考去搜问题,最好要懂为什么要这么做,要不然感觉会白白浪费很多时间。比如什么是环境变量,为什么要配环境变量,32位和64位的区别,这些常识性问题一定要懂。 感觉只有在这样的思维模式下训练,DeBug解决问题的能力才会越来越强,要不然永远只是一个只会搜csdn的入门学生。。。