猿问

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

我验证了我的 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)])

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


宝慕林4294392
浏览 119回答 1
1回答

慕桂英3389331

您的代码在 GPU 上运行,认为 GPU 利用率可以告诉您代码是否在 GPU 中运行是一种误解。问题在于,predict对每个图像执行一次调用的效率非常低,因为在 GPU 上几乎无法执行并行性,如果传递整个图像数组,那么它将提高 GPU 利用率,因为可以向 GPU 和每个图像提供批次并行处理。GPU 仅加速特定工作负载,因此您唯一的选择是在调用中使用更多图像predict。
随时随地看视频慕课网APP

相关分类

Python
我要回答