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

标签 python tensorflow keras tensorflow2.0

使用 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 时使用更多图像。 .

关于python - 如何使用 GPU 运行 Keras Model.Predict(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64539144/

相关文章:

python - 在同一个 df Python/Pandas 中组合列

python - 根据上一行的值更新表

python-3.x - 只分配一个GPU给Keras(TF后端)脚本

python - 如何将带有 keras 回归器的 scikit-learn 管道保存到磁盘?

python - 卷积神经网络中的不平衡类

python - 'Flask'对象没有登录单元测试的属性 'post'错误

python - 我们如何确定属性属于实例还是类?

tensorflow 插件移动平均线

tensorflow - 在 tensorflow 上使用批量大小为 'powers of 2' 更快吗?

keras - 如何训练多输出深度学习模型?