CUDA、VS、tensorflow坑我笔记

前言

前段时间由于课程需要使用VS编写CUDA程序,刚好我一直又有使用tensorflow的需求,于是年少无知的我就开始一个一个的安装。

入坑

首先使用

pip install tensorflow

安装tensorflow,由于没加版本号,自动安装了最新版的tensorflow2.3.0,安装过程也没啥问题。

下面开始安装VS,毫无疑问直接进入官网就开始下载VS2019安装,安装过程也很简单,选择自己需要的功能以及安装路径之后耐心等待即可。

安装好VS后,最后安装CUDA,同样进入NVIDIA官网,在菜单栏的开发者里找到CUDA,然后选择适合你电脑系统的版本就开始下载安装,这种方式默认下载的最新版本的CUDA11.0,此外由于需要对tensorflow提供支持,还需要下载CUDA11.0对应版本的cuDNN,CUDA和cuDNN的安装方式可以参考博客cuda安装教程+cudnn安装教程

进行到这儿,一切看起来似乎挺顺利的,但是最终安装好了没有还得测试一下。首先打开VS2019在新建项目里已经有了一个CUDA11.0项目,新建一个项目测试也没问题,VS+CUDA算是没问题了;下面测试tensorflow,使用输入下面的代码

import tensorflow as tf
tf.test.is_gpu_available()

如果输出结果是True,那么恭喜,但是天不随人愿,输出的结果是False。

脱坑

从上面结果初步推断可能是tensorflow和CUDA的版本不兼容,进入tensorflow官网
在这里插入图片描述
果不其然是版本不兼容的原因,我这里安装的CUDA版本是11.0太高了,而最新版的tensorflow2.3.0也才支持CUDA10.1,好吧,只有卸载CUDA从新安装了(这里笔者使用的win10控制面板卸载的,反正根据软件的名字、发布者和安装时间卸载了老大一堆,反正注意着不要吧你的显卡驱动卸载就行),从新下载CUDA10.1以及对应的cuDNN,按照上面提供的方法再次安装即可。

安装好CUDA10.1之后,再次测试

import tensorflow as tf
tf.test.is_gpu_available()

结果终于是True了,tensorflow+CUDA也没问题了,看似大功告成时,为了以防万一,再次测试VS能不能使用CUDA,当我新建VS项目时,却赫然发现新建项目列表却没有CUDA项目了。行吧,我再次查了一下是不是也是VS和CUDA版本不兼容的问题,在CUDA程序的代码模板文件路径中(找了好久才找到,这个是安装CUDA后产生的CUDA程序模板文件路径)

C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1

在这里插入图片描述
有VS2012、2013、2015、2017的解决方案文件,但是就是没有VS2019的,看来应该还是VS和CUDA版本兼容的问题,于是一狠心又卸载了VS2019(这个卸载还是简单,控制面板选中卸载即可),然后又去找了半天的VS2017安装。

再次安装好VS2017后,本以为这次该没问题了吧,没想到的是,打开VS2017后还是没有CUDA项目,此刻我心里真的是…。后来又查了老半天资料,说是要先安装VS再安装CUDA,由于刚刚卸载过VS,所以VS是比CUDA后安装的,没办法就只能再次卸载了CUDA然后从新安装。

最终安装好CUDA后,测试VS,新建项目终于有CUDA项目了,测试也没问题,再次测试tensorflow

import tensorflow as tf
tf.test.is_gpu_available()

结果也是True,好了,大功告成。

总结

如果同时有CUDA、VS和tensorflow的需求,推荐使用:CUDA10.1 + VS2017 + tensorflow2.3.0
如果仅有CUDA和VS的需求,推荐使用:CUDA11.0 + VS2019
如果仅有CUDA和tensorflow的需求,推荐使用:CUDA10.1 + tensorflow2.3.0
需要注意的是,安装CUDA和VS时,应该先安装VS,再安装CUDA
最后再推荐一波国产深度学习框架paddlepaddle,毕竟是国产的,而且没有对CUDA的要求,只有对cuDNN的要求。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值