7

我在后端使用带有 tensorflow-gpu 的 Keras,我没有安装 tensorflow(CPU - 版本),所有输出都显示选择了 GPU,但 tf 正在使用 CPU 和系统内存

当我运行我的代码时,输​​出是:output_code

我什至跑了 device_lib.list_local_device() 并且输出是:list_local_devices_output

运行代码后,我尝试使用 nvidia-smi 来查看 gpu 的使用情况,输出为: nvidia-smi output

Tensorflow-gpu = "1.12.0"
CUDA toolkit = "9.0"
cuDNN = "7.4.1.5"

环境变量包含:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp;
C:\WINDOWS\system32;
C:\WINDOWS;
C:\WINDOWS\System32\Wbem;
C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
C:\WINDOWS\System32\OpenSSH\;
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
D:\Anaconda3;D:\Anaconda3\Library\mingw-w64\bin
D:\Anaconda3\Library\usr\bin;
D:\Anaconda3\Library\bin;
D:\Anaconda3\Scripts;D:\ffmpeg\bin\;

但是当我在任务管理器中检查内存使用情况时,输出仍然是

CPU 利用率 51%,RAM 利用率 86% GPU 利用率 1%,GPU-RAM 利用率 0% Task_manager_Output 所以,我认为它仍然使用 CPU 而不是 GPU。

系统配置:

Windows-10 64 bit; IDE: Liclipse; Python: 3.6.5  
4

1 回答 1

8

正如您在日志中看到的那样,它正在使用 GPU。问题是,很多事情不能在 GPU 上完成,只要你的数据很小并且你的复杂性很低,你最终的 GPU 使用率就会很低。

  • 也许batch_size太低->增加直到遇到OOM错误
  • 您的数据加载非常耗时,您的 gpu 必须等待(IO 读取)
  • 您的 RAM 太低,应用程序使用磁盘作为后备
  • 预处理是缓慢的。如果您正在处理图像,请尝试将所有内容计算为生成器或尽可能在 gpu 上
  • 您正在使用一些不是 GPU 加速的操作

这里有一些更详细的解释。

于 2018-12-21T20:03:11.313 回答