4

使用 ONNX 运行时在深度学习模型上运行推理。假设我有 4 个不同的模型,每个模型都有自己的输入图像,我可以在 4 个线程中并行运行它们吗?会有一个“环境”然后是 4 个会话(使用相同的环境)吗?

4

1 回答 1

3

是的 - 一个环境和 4 个单独的会话就是您的做法。

权重和偏差的“只读状态”特定于模型。

会话与模型具有 1:1 的关系,并且这些事情不会在会话之间共享,因为每个模型只需要一个会话,因为您可以使用不同的输入大小同时调用 Run(假设模型支持动态批处理/输入尺寸)。

关于线程,默认是每会话线程池,但也可以跨会话共享全局线程池。

你如何做到这一点因所使用的 API 而异:

  • 对于 C API,请使用CreateEnvWithGlobalThreadPools.
  • 对于 C++ API OrtThreadingOptions,在构建Ort::Env.
于 2020-06-02T07:02:30.913 回答