keras、bertkeras、tensorflow安装了GPU版本运行代码却是CPU、启动GPU运行失败记录

最近跑NLP模型,用了bert模型作为框架提取数据特征,因为网络比较复杂,用CPU估计得几天,,,,必须上GPU,然后把数据搭载到服务器,安装了tensorflow-gpu1.14.0版本,安装成功,没有报错,运行代码,速度还是很慢,是按CPU的效率运算的,我就晕了,百度了各种方法,然后也在代码里加了强制启动GPU运行的代码指令,都没有用,就很奔溃。

这里说明一下keras和bertkeras和tensorflow的关系,keras和bertkeras都是tensorflow的一个封装,所以如果你以为你的代码里都是keras或者bertkeras没有出现tensorflow,然后你去百度keras代码为啥没有成功启动GPU运算,是没有用的(血的教训…),其底层还是tensorflow的原因,所以应该百度tensorflow的原因,如果你的代码已经明确了启动GPU模式运算,甚至说你已经强制用GPU运行,但还是CPU在运算,这种情况大概率就是你的tensorflow版本和服务器本身自带的CUDA版本不匹配,是的,就是这个原因,首先查看服务器的cuda,也可以是你自己电脑安装的cuda版本,指令如下:

nvcc -V

查看cuda版本,我这里查看了我使用的服务器的cuda版本号如下
keras、bertkeras、tensorflow安装了GPU版本运行代码却是CPU、启动GPU运行失败记录_第1张图片
于是马上查看cuda和tensorflow版本对应关系。
如下
keras、bertkeras、tensorflow安装了GPU版本运行代码却是CPU、启动GPU运行失败记录_第2张图片
发现这个cuda10.1是最新的cuda版本,对应的是tensorflow2.1.0版本,因为很多人的代码都是tensorflow1.14.0比较多,所以我也是习惯用这个,好吧,因为服务器的cuda比较麻烦不好修改,所以修改tensorflow版本,先卸载

pip uninstall tensorflow-gpu==1.14.0

再安装

pip install tensorflow-gpu==2.1.0

请注意tensorflow一定有后缀gpu,说明是gpu模式,不然默认是cpu。

然后再运行代码,跑得飞快,原来CPU跑一天的代码,十几分钟跑完了,GPU太香了。

你可能感兴趣的:(tensorflow,深度学习,人工智能,大数据)