3,302
社区成员




我看snpe官方文档里Supported ONNX Ops页面列出了每个算子支持的Opset版本,比如Conv算子在Opset Version Supported列里是[1,11],这里指的是opset1和11还是opset1到11?其他opset的onnx就不支持这个算子吗?
这张表格表达的内容是有歧义的。查询snpe源码可以得知,这个表里Opset Version Supported一列里的内容是以op schema的形式注册进去的。
追踪Conv算子的注册过程,发现算子注册了Conv-1和Conv-11两个不同的schema,每个schema在opset大于等于其version的情况下生效。
也就是说Conv算子里的[1,11]指的是,在onnx opset1到opset10的情况下,使用Conv-1的schema转换;在onnx opset大于等于11的情况下,使用Conv-11的schema转换。注意,因为最高版本的schema没有限制opset上限,所以opset版本尽量要和snpe版本匹配,如果出现opset版本过高而snpe版本过低,可能会出现onnx的opset模式更新而snpe没有适配,这时会出现转换错误。