
模型转换
文章平均质量分 75
Artyze
你知道dota的artyzee吗?
展开
-
onnx优化系列 - 获取onnx每层输出及shape
如何获取onnx每层输出及shape问题描述onnx作为中间转换标准键,我们需要确保模型转换前后的精度完全一致,否则就失去了模型转换的最基本要求。但是在以下两种情况下,我们通常会遇到一点问题:我们需要获取模型特定节点的输出我们需要获取每一层的output shape,而由onnx标准api: onnx.shape_inference得到的shape信息错误解决方法我们知道获取onnx输出的官方工具即是onnxruntime,通常我们会采用如下的方法获取output: model =原创 2021-04-29 15:32:30 · 19038 阅读 · 3 评论 -
torch注册自定义算子并导出onnx(Enet, Centernet)
torch注册自定义算子定义算子计算函数编译生成.so文件测试是否注册成功1. 定义算子的由input到output的计算函数**(op_custom.cpp)**2. 将函数注册到torch中**(op_custom.cpp)**3. 创建setup.py4. 开始编译5. 进行测试->加载模型**(test.py)**第一种:第二种:6. 进行测试->将算子通过symbol注册到torch/onnx(test.py)7. 进行测试->导出模型到onnx(test.py)8. 查看onn原创 2020-07-28 18:43:21 · 8833 阅读 · 15 评论 -
onnx优化系列 - 获取中间Node的inference shape的方法
ONNX获取中间Node的inference shape的方法需求描述原理代码需求描述很多时候发现通过tensorflow或者pytorch转过来的模型是没有中间的node的shape的,比如下面这样:但是碰到一些很奇怪的算子的时候,我们又想知道他对上一层feature map的形状影响是怎样的,于是下面的模型看起来会更友好一些这里之所以看上去和原来的node的分布都不一样,是因为我在这里将pad和biasadd加到conv中了已经。原理ONNX本身提供了进行inference的api:s原创 2020-07-17 10:49:58 · 10245 阅读 · 1 评论