众所周知 onnx 是一个比较通用的模型,并且运行的时候也比 torch 之类的模型对环境的要求更低。
一般的机器运行 onnx 的时候都会求助于 Microsoft 开发的 onnxruntime,并且在 github 上有仓库。
在配置 onnxruntime 的时候,有一个参数叫做 Provider,这个有几个取值,其中一个比较基础的就是 CPUExecutionProvider,可能也会有 CUDAExecutionProvide?但是我没用过。本次要说的重点是,我发现 CANN 和 onnxruntime 合作,还提供了一个 onnxruntime-cann。
如果我们下载的是 onnxruntime-cann(pip 中 onnxruntime-cann 和 onnxruntime 不能共存),之后 python 语法中还是 import onnxruntime,但是在 Provider 中就可以看到一个 CANNExecutionProvider。
所以推理的脚本,和原本 onnx 模型的推理脚本基本是一样的,不一样的只不过是 Provider 中选择 CANN 的 Provider。
众所周知 onnx 是一个比较通用的模型,并且运行的时候也比 torch 之类的模型对环境的要求更低。
一般的机器运行 onnx 的时候都会求助于 Microsoft 开发的 onnxruntime,并且在 github 上有仓库。
在配置 onnxruntime 的时候,有一个参数叫做
Provider,这个有几个取值,其中一个比较基础的就是 CPUExecutionProvider,可能也会有 CUDAExecutionProvide?但是我没用过。本次要说的重点是,我发现 CANN 和 onnxruntime 合作,还提供了一个 onnxruntime-cann。如果我们下载的是
onnxruntime-cann(pip 中onnxruntime-cann和onnxruntime不能共存),之后 python 语法中还是import onnxruntime,但是在Provider中就可以看到一个CANNExecutionProvider。所以推理的脚本,和原本 onnx 模型的推理脚本基本是一样的,不一样的只不过是 Provider 中选择 CANN 的 Provider。