tf2.0——为什么安装了tensorflow-gpu,结果还是用CPU在训练?

tf2.0——为什么安装了tensorflow-gpu,结果还是用CPU在训练?

  • 前言
  • 安装步骤
  • 为什么安装的是GPU版本训练时还是用的CPU?

前言

最近在学习台大李宏毅老师的ML/DL的网课,学到CNN那一章想着做一下作业3(用CNN实现一个11种食物分类的模型),模型搭建好后跑了一下,结果要一个多小时才能出结果,而且准确率还不是很高(53%左右),遂想修改下模型,但实在是耗不起时间(毕竟我训练模型的那一个多小时都在打王者)。

所以决定下个GPU版本的tensorflow来训练模型,期间踩了很多坑,写这篇博客一方面记录一下踩的坑,一方面希望能为像我一样的初学者节省些时间。

P.s:原来要训练一个小时的模型,使用GPU只要不到3分钟,真香!

安装步骤

安装步骤网上有很多了,这里就不再废话了。以下两个博客都是在Anaconda环境下安装的,很方便,综合参考就可以。

博客1
博客2

但是我要说一点,这两个博客在安装CUDA时都用的自定义安装,我个人尝试第一种精简版的就可以(第一次我是用自定义安装时莫名其妙把我的显卡驱动给删了,让我又下了一遍)。当然,如果你很清楚自己需要安装些什么,也可以选择自定义。

为什么安装的是GPU版本训练时还是用的CPU?

终于安装好了,一跑模型发现速度没两样,打开任务管理器一看CPU利用率100%,满脸黑线。

而且我还用网上的各种方法测试,都显示GPU可用。感到非常困惑!
tf2.0——为什么安装了tensorflow-gpu,结果还是用CPU在训练?_第1张图片

为什么会这样?可以从以下两个方面检查一下。

1. 之前安装有cpu版本的tensorflow且版本高于gpu版本

如果你的环境中已经安装有cpu版本的tensorflow,然后你又安装了tensorflow-gpu,且cpu版本高于gpu版本的话,环境会优先使用cpu版本的tensorflow。

如何查看哪个版本高呢?
进入cmd命令行,输入:

conda list

可以查看根环境中安装的所有包,你看看tensorflow的版本是否高于tensorflow-gpu。如果高的话直接把tensorflow的包给删了就行,有tensorflow-gpu就够了。

2. 进入NAVIDA 控制面板设置一下

其实我进行完步骤1还是不行,还是在用CPU训练。这时可以打开NVIDA 控制面板,按下图设置一下。设置完之后我再跑模型,就是用的GPU了。速度贼快!
tf2.0——为什么安装了tensorflow-gpu,结果还是用CPU在训练?_第2张图片

你可能感兴趣的:(神经网络,tensorflow,深度学习,神经网络,人工智能,机器学习)