我验证了我的 TF 正确使用了我的 GPU。TF 使用 GPU 来运行 model.fit(),在 HWiNFO64 中看到大约 50% 的使用率。但是,如果我随后将此单元添加到笔记本中,笔记本将使用该模型来预测测试集中图像的标签:import numpy as npfor 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(),或者是否有任何替代方案可以为单个输入提供模型输出?
1 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
您的代码在 GPU 上运行,认为 GPU 利用率可以告诉您代码是否在 GPU 中运行是一种误解。
问题在于,predict
对每个图像执行一次调用的效率非常低,因为在 GPU 上几乎无法执行并行性,如果传递整个图像数组,那么它将提高 GPU 利用率,因为可以向 GPU 和每个图像提供批次并行处理。
GPU 仅加速特定工作负载,因此您唯一的选择是在调用中使用更多图像predict
。
添加回答
举报
0/150
提交
取消