我已经使用PyTorch在我的自定义数据集上训练了YOLO-v3 tiny。为了比较推断时间,我在CPU、PyTorch GPU和PyTorch CPU上尝试了on。平均运行时间约为:
运行时cpu: 110毫秒- CPU使用率: 60% Pytorch GPU: 50毫秒Pytorch CPU: 165毫秒- CPU使用率: 40%,并且所有型号都使用批处理大小1。
然而,我不明白为什么options比PyTorch更快,因为我没有用过onnxruntime的任何优化选项。我只是用了这个:
onnx_model = onnxruntime.InferenceSession('model.onnx')
onnx_model.run(None,{onnx_model.get_inputs()[0].name: input_imgs })有人能给我解释一下为什么在没有任何优化的情况下它会更快吗?也是为什么使用onnxruntime时CPU使用率更高的原因。有什么解决方案可以降低它吗?
提前谢谢。
发布于 2021-06-16 03:54:31
ONNX Runtime使用静态的ONNX图形,所以它有完整的图形视图,并且可以做很多用PyTorch不可能或更难做的优化。在某种意义上,它类似于编译的编程语言实现与解释的编程语言实现。
https://stackoverflow.com/questions/67943173
复制相似问题