我在尝试训练我的第一个Keras图像分类器,使用8000张图片的训练集时,训练速度非常慢。训练过程中,我的CPU和GPU使用率分别约为40%和3%,我完全不确定tensorflow-gpu是否正确安装,因为在导入时我没有看到那些据说应该出现的“成功打开CUDA库”的提示信息。
我的问题是:
-
在1080显卡上,训练这种规模的数据通常需要多长时间?
-
鉴于我已经安装了以下软件,我在设置tensorflow-gpu时可能还缺少什么?
- 全新的Windows 10安装
- 最新版64位Anaconda
- Visual Studio 2017,安装时仅勾选了“桌面开发使用C++”选项
- Cuda Toolkit 9.0 及最新补丁
- cuDNN v7.0.5(2017年12月5日),适用于CUDA 9.0
- tensorflow-gpu 1.7
- 环境变量的截图
回答:
检查你的tf是否使用GPU的一个方法(对我来说是最好的方法)是使用nvidia-smi:这里你可以看到我的任务的GPU内存使用情况(我有160万个观测值,13个变量,占用约11 GB,你的应该也只占用几个MB或GB,具体取决于你的图片大小),所以如果你的系统在你开始运行模型后没有显示这些信息,那么肯定是使用了CPU(GPU可能需要几分钟到几个小时,而CPU会花费更长时间)
注意:我的终端不会输出tensorflow的输出信息,这些信息在IDE中是存在的,如下所示(CUDA不会显示在其中,正如网上所声称的那样,只有当不兼容并且无法在tf中启动GPU时,才会出现CUDA问题):
这里是正确安装cudnn后测试通过的信息:
P.S:希望这对你有帮助。昨天在Ubuntu上尝试了Tensorflow 1.7版本,但没有按预期工作(GPU没有工作),所以我降级回到了1.6版本,因此建议你使用1.6版本:
你的设置与官方文档略有不同:
nvidia cuda toolkit documentation
所以这里是正确的路径:
确保设置以下值:
Variable Name: CUDA_PATH Variable Value: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0