上一篇写了之前在我的Windows7上安装TensorFlow GPU版的一路坑坑洼洼,本以为已经解决了。但实际上在过年的几天内,又一次出现了问题。经过了反复的尝试,到今天为止终于稳定下来,特此记录一下。但是具体原因还是不十分清楚。

上一篇写到用CUDA自带的安装包里的390.60版显卡驱动程序完成安装后,终于可以运行TensorFlow的例子在GPU上了,很是开心了一阵子。但就在带回家过年的几天里,再次运行例子,居然又出现了“此设备不能移动或不能拔出”的问题,然后程序崩溃掉了,连切换到CPU都不行。彻底晕菜!!

之后按照之前的做法,卸掉显卡,卸掉驱动,卸掉CUDA程序,再从头安装,居然问题没有解决。于是又一通卸载和安装,但问题依旧。驱动程序版本低了说insufficient version,版本高了不是python崩溃,就是弹出显卡。

折腾了几天,完全没有头绪了。后来想起CUDA在安装的过程中曾经提出过Visual Studio的版本不兼容的问题,再想起莫烦的视屏里也提到需要Visual Studio 2015的一个情况,就在想是不是我本机的Visual Studio有问题。赶紧查看,发现本机没有安装Visual Studio,但有一对Visual C++,最高是2013版。于是开始了心酸的VS升级的过程。

升级VS最大的问题出现在微软的任何软件都是超级大,不是一般的大,是超级大。公司的电脑C盘只给了75G,在剩余15G的情况下,居然装不了VS 2015 community版本!!!!最后C盘空间不足而失败!!!

中间各种卸载其他软件等等的苦难就不说了,最后还是找IT运维把C盘扩展到150G解决了这个狗屎问题。

装完VS 2015,再装各种CUDA和驱动,问题依然。此时已经几乎是心灰意冷了,想想还是用用CPU版算了。

中间隔了几天,恢复心态后,又仔细想想这个问题。总觉得和TensorFlow没啥关系,因为TensorFlow自己报的错是找不到硬件:CUDA_NO_DEVICE_ERROR。那么就是硬件和Windows7自己的问题。于是上网去专门搜“此设备不能移动或不能拔出”的问题,而不是和TensorFlow一起搜。

果然,各个游戏论坛里关于这个问题的帖子很多,基本都是升级了显卡驱动程序后出现的。一般的解决方案都是回退显卡的驱动到前一个版本。但是对于我来说,是没有了前一个版本的。最后抱着死马当作活马医的想法,用GeForce Experience里的驱动更新功能,来更新显卡驱动程序。发现最新的显卡版本已经是2017年1月24号的了,比之前折腾的时候还要新,于是就安装了一把。


奇迹出现了!!!安装完是最新的378.49版本。然后一切正常,TensorFlow也可以用GPU来运算了,反复重启后还是很好用。完美解决!!


原因分析:基本能定位在是GeForce显卡的驱动程序上,但是具体明确的原因还是不清楚。之前安装396.60版后成功了,但是又出问题,怀疑是Windows更新了驱动程序。同时估计是这个版本和当时机器上的VS还是存在兼容的问题。而更新到VS 2015后,再用最新的驱动程序,两者之间兼容性很好,所以显卡就能正常工作了。


后记:利用GPU,现在跑Udacity教程,基本上调参再跑一次都是分钟杀。在Linux CPU版本上如果做同样的事情,那每个跑一次模型都要几个小时,完全无法正常练习。所以还是强烈建议想学TensorFlow的童鞋,用GPU版本吧。人生会灿烂很多!!!


GitHub 加速计划 / te / tensorflow
184.55 K
74.12 K
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:2 个月前 )
a49e66f2 PiperOrigin-RevId: 663726708 2 个月前
91dac11a This test overrides disabled_backends, dropping the default value in the process. PiperOrigin-RevId: 663711155 2 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐