【问题标题】:Keras is not Using Tensorflow GPUKeras 没有使用 TensorFlow GPU
【发布时间】:2018-08-16 05:52:07
【问题描述】:

我正在尝试使用 Keras 和 Tensorflow 后端来训练一个 CNN 模型。问题是,尽管我安装了 tensorflow-gpu 而不是普通的 tensorflow solution described in this link

我已经安装了 CUDA 9.0 版和 cuDNN 7.1 版,this link described 没有收到任何问题。

我还确保 tensorflow 能够检测到我的 GPU

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 18032619952595111467
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 3187841433
locality {
  bus_id: 1
}
incarnation: 7706357628903921514
physical_device_desc: "device: 0, name: GeForce GTX 1050, pci bus id: 0000:01:00.0, compute capability: 6.1"
]

经过进一步研究,我发现了这个link。而且我的脚本没有加载本地 cuDNN 库。

编辑

下面是nvidia-smi.exe的截图,这是我开始CNN训练前后(即没有变化)。

编辑 v2

好的,我取得了一些小进展,结果发现在 Spyder 中运行脚本有些奇怪,所以我在命令提示符中使用 python my_python_script.py 运行它。我可以肯定地说 GPU 是被 tensorflow 识别的,因为 Keras 已经给 GPU 分配了工作。但是,我仍然得到 0% 的利用率

我不知道还有什么问题。请帮忙。

提前致谢!

【问题讨论】:

  • 能否请您尝试在终端上运行nvidia-smi,看看您运行cnn时内存使用和进程是否有任何变化?
  • @skr_robo 我已经进行了编辑,虽然我不确定如何解释结果
  • 我的错。我没有注意到这一点。你知道PID 13636对应的是什么进程吗?这看起来像 Keras CNN 代码。另外,你能通过运行nvcc -V来验证CUDA的安装吗?
  • 我认为那是 Spyder 编辑器。是的,CUDA 已安装,nvcc -V 的输出为 nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2017 NVIDIA Corporation Built on Fri_Sep__1_21:08:32_Central_Daylight_Time_2017 Cuda compilation tools, release 9.0, V9.0.176
  • Spyder 被广泛用于运行 Keras CNN 代码。您是否使用 Spyder IDE 运行 Keras CNN 代码?

标签: python tensorflow keras


【解决方案1】:

所以没有使用 GPU 的原因是因为 图像太大而无法加载,我将训练和验证图像的大小调整为只有 64x64,现在 Keras 使用我的GPU,加速最令人满意。

话虽如此,我不知道为什么 Keras 或 Tensorflow 没有首先抛出 Out of Memory 异常,从而节省了我在 Google 中搜索答案的时间。

【讨论】:

  • 这没有意义?如果图像确实太大,那么您肯定会收到 OOM 错误....
猜你喜欢
  • 2023-03-19
  • 2017-12-13
  • 2018-05-07
  • 2020-11-13
  • 2021-04-13
  • 1970-01-01
  • 1970-01-01
  • 2018-02-11
  • 2018-02-15
相关资源
最近更新 更多