关于安装tensoflow-gpu版本的几个坑

首先是配置,window7旗舰版+gtx765m+8G内存,网上大多数安装教程都是基于win10的,win7遗老不多了.下面是安装步骤:首先是查看你的gpu是否支持CUDA,点击链接,按照官方的说法是计算能力大于3.0的才适合使用gpu版本,我的显卡刚好合适.

关于安装tensoflow-gpu版本的几个坑

下面是安装CUDA和cuDNN,这里一定要注意版本之间的搭配,假如你的tensorflow是1.8的,对应的CUDA就是9.0,对应的cuDNN就是版本7.这里要吐槽老黄不给力,我一开始下的CUDA是9.2版本的,结果就是各种报错,目前截止到2018年8月,tensorflow最新的是1.10版本,并不支持最新的CUDA9.2版本.(这就很尴尬)

如何查看tensorflow对应的版本呢?这里参考这篇博文,通过打开D:\Anaconda3\envs\tensorflow\Lib\site-packages\tensorflow\python\platform\build_info.py这个文件,(这里博主用的是anaconda进行环境管理)看到CUDNN_version_number和CUDA_version_number查看.

安装完CUDA后重启电脑让环境生效,或者手动添加环境,否则会报错.

接下来是比较头疼的,拥有高配电脑甚至是工作站的请无视,就是显存爆了

ResourceExhaustedError (see above for traceback): OOM when allocating tensor

网上很多篇文章说的是减小batch的大小,我从32减到4依旧没有用,最后才发现是test的时候一次把整个test集丢进去计算accuracy,因为test集太大了导致显存爆了,这点对低配置玩家来说很无奈,最后只有分批test再计算平均值解决了这个问题.

ModuleNotFoundError: No module named 'tensorflow'

这个错误当初也是让笔者摸不着头脑,因为可能导致这个错误的原因太多,最后一项一项排查下来才搞清楚,因为笔者为了适配tensorflow版本新装了python3.6,而笔者使用的是anaconda自带的spyder,旧版本的spyder就不适配新安装的python导致了这个问题.

ImportError: Could not find 'cudart64_90.dll'. TensorFlow requires that this

module 'tensorflow.python.ops.nn' has no attribute 'leaky_relu'

以上两个问题都是版本问题,一定要找到自己tensorflow对应的版本,还有就是可能没有把CUDA添加到环境,不过新版本的CUDA已经有自动添加功能了,剩下的就是重启电脑让环境生效.