使用 ONNX 运行时在深度学习模型上运行推理。假设我有 4 个不同的模型,每个模型都有自己的输入图像,我可以在 4 个线程中并行运行它们吗?会有一个“环境”然后是 4 个会话(使用相同的环境)吗?
问问题
3837 次
1 回答
3
是的 - 一个环境和 4 个单独的会话就是您的做法。
权重和偏差的“只读状态”特定于模型。
会话与模型具有 1:1 的关系,并且这些事情不会在会话之间共享,因为每个模型只需要一个会话,因为您可以使用不同的输入大小同时调用 Run(假设模型支持动态批处理/输入尺寸)。
关于线程,默认是每会话线程池,但也可以跨会话共享全局线程池。
你如何做到这一点因所使用的 API 而异:
- 对于 C API,请使用
CreateEnvWithGlobalThreadPools
. - 对于 C++ API
OrtThreadingOptions
,在构建Ort::Env
.
于 2020-06-02T07:02:30.913 回答