python-3.x - 为什么 Tensorflow-gpu 还在使用 cpu

标签 python-3.x tensorflow keras liclipse

我在后端使用带有 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  

最佳答案

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

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

  • Here是一些更详细的解释。

    关于python-3.x - 为什么 Tensorflow-gpu 还在使用 cpu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53887816/

    相关文章:

    python - "The handshake operation timed out"与 urllib,适用于请求

    python - Numba Prange 示例不起作用

    tensorflow - Keras:为什么显示所有批处理都已完成时,整个 epoch 需要更长的时间?

    python - 这些机器学习输出文件的用途和意义是什么?

    python - Tensorflow 摘要指标未初始化(与 Tensorboard 一起使用)

    python - keras 函数式 api 和多个合并层

    python - python 中的图像数组

    python - 如何从文件中读取数组并将其分配给变量?

    二进制编码(非单热编码)分类数据的 Keras 自定义损失函数

    tensorflow - 如何解决 "No Algorithm Worked"Keras 错误?