https://onnxruntime.ai/docs/tutorials/accelerate-pytorch/pytorch.html

1. 什么时候直接用PyTorch来推理:

现成的PyTorch库和Python环境都在,且不care推理速度;

2. 什么时候用TorchScript来推理:

移动端等轻量级环境,不能安装PyTorch、Python这样的大size库时;

(PyTorch官方也说其对计算图进行了优化,可以比PyTorch直接推理要更快)(个人感觉,其实就是Facebook不想完全依赖ONNX,自己想独立做自己的部署方案)

3. 什么时候用ONNX Runtime来推理:

在意推理速度;需要部署到不同的设备上;(也支持TensorFlow等多种框架的模型)

使用ONNX和Torchscript加快推理速度的测试 - 知乎 (zhihu.com)

结论:

1. Batch size小时,ONNX明显比TorchScript要快;Batch size大时,差距缩小;

2. Batch内部的序列长度相似时,Batch size越大,加速效果约好;

3. 序列越长,加速效果越不明显

4. Batch内部的序列长度相差大的话,Batch size可能在中间某个范围是加速比最大的,因为再大就带来很多“补齐”造成的冤枉计算。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐