Tensorflow GPU 使用

我在尝试训练我的第一个Keras图像分类器,使用8000张图片的训练集时,训练速度非常慢。训练过程中,我的CPU和GPU使用率分别约为40%和3%,我完全不确定tensorflow-gpu是否正确安装,因为在导入时我没有看到那些据说应该出现的“成功打开CUDA库”的提示信息。

我的问题是:

  1. 在1080显卡上,训练这种规模的数据通常需要多长时间?

  2. 鉴于我已经安装了以下软件,我在设置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
    • 环境变量的截图

enter image description here


回答:

检查你的tf是否使用GPU的一个方法(对我来说是最好的方法)是使用nvidia-smi:这里你可以看到我的任务的GPU内存使用情况(我有160万个观测值,13个变量,占用约11 GB,你的应该也只占用几个MB或GB,具体取决于你的图片大小),所以如果你的系统在你开始运行模型后没有显示这些信息,那么肯定是使用了CPU(GPU可能需要几分钟到几个小时,而CPU会花费更长时间)

nvidia-smi info

注意:我的终端不会输出tensorflow的输出信息,这些信息在IDE中是存在的,如下所示(CUDA不会显示在其中,正如网上所声称的那样,只有当不兼容并且无法在tf中启动GPU时,才会出现CUDA问题):

Tensorflow uses GPU

这里是正确安装cudnn后测试通过的信息:

cudnn test pass

P.S:希望这对你有帮助。昨天在Ubuntu上尝试了Tensorflow 1.7版本,但没有按预期工作(GPU没有工作),所以我降级回到了1.6版本,因此建议你使用1.6版本:check the tf version

你的设置与官方文档略有不同:

nvidia cuda toolkit documentation

所以这里是正确的路径:

确保设置以下值:

Variable Name: CUDA_PATH Variable Value: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注