如何使用 GPU 运行 Keras Model.Predict()

How to use GPU to run Keras Model.Predict()

使用 Tensorflow CIFAR CNN demonstration,我验证了我的 TF 是否正确使用了我的 GPU。 TF 将 GPU 用于 运行 model.fit(),它在 HWiNFO64 中看到了大约 50% 的使用率。但是,如果我随后将这个单元格添加到笔记本中,它使用模型来预测测试集中图像的标签:

import numpy as np
for img in test_images:
    prediction = model.predict(np.expand_dims(img, axis=0)) # Here
    print(class_names[np.argmax(prediction)])

我只看到 1% 的 GPU 使用率(由 Chrome 和其他进程使用)。有没有办法让我在 GPU 上 运行 model.predict() ,或者有什么替代方法可以为单个输入提供模型输出?

您的代码在 GPU 上是 运行,认为 GPU 利用率可以告诉您代码在 GPU 上是否是 运行 的想法是错误的。

问题是对每个图像执行一次 predict 调用效率非常低,因为在 GPU 上几乎无法执行并行操作,如果传递一整组图像,那么它会增加 GPU 利用率,因为可以将批次提供给 GPU 并并行处理每个图像。

GPU 只能加速特定的工作负载,因此您唯一的选择是在调用 predict 时使用更多图像。