使用 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/