我在后端使用带有tensorflow-gpu的Keras,我没有安装tensorflow(CPU版本),所有输出都显示选择了GPU,但tf正在使用CPU和系统内存
当我运行代码时,输出是:输出代码
我什至运行了 device_lib.list_local_device() ,输出是:列表本地设备输出
运行代码后,我尝试 nvidia-smi 来查看 GPU 的使用情况,输出为:nvidia-smi 输出
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%任务管理器输出所以,我认为它仍然使用CPU而不是GPU。
系统配置:
Windows-10 64 bit; IDE: Liclipse; Python: 3.6.5
正如您在日志中看到的那样,它正在使用 GPU。
问题是,很多事情无法在 GPU 上完成,只要数据很小并且复杂性很低,最终的 GPU 使用率就会很低。
- 也许batch_size太低->增加直到遇到OOM错误
- 您的数据加载消耗了大量时间,并且您的 GPU 必须等待(IO 读取)
- 您的 RAM 太低,应用程序使用磁盘作为后备
- 预处理速度很慢。如果您正在处理图像,请尝试将所有内容作为生成器或在 GPU 上(如果可能)进行计算
- 您正在使用一些未 GPU 加速的操作
Here是一些更详细的解释。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)