4.2 onnx简化模型结构

前言

对已有的onnx结构,进行简化操作,onnx提供两种常规操作

方式一

假设为 model.onnx, 比较简单粗暴

# 简化
onnxsim model.onnx model_sim.onnx

方式二

稍微复杂点,代码有点多

cpp 复制代码
import onnx
import argparse
from onnxsim import simplify

# Simplify
def simplify_model(args):
    onnx_model = onnx.load(args.origin_model)
    model_simp, check = simplify(onnx_model)
    model_simp = onnx.shape_inference.infer_shapes(model_simp)
    onnx.save(model_simp, args.output_model)
    print("  Simplify onnx Done.")

# 检查onnx计算图
def checknet(model_path):
    model = onnx.load(model_path)
    onnx.checker.check_model(model)  
    # Print a human readable representation of the graph
    # print(onnx.helper.printable_graph(model.graph))
    
def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument("--origin_model", type=str)
    parser.add_argument("--output_model", type=str)
    args = parser.parse_args()
    return args

if __name__ == "__main__":
    args = parse_args()
    simplify_model(args

总结

  • 两种本质上没用改变,都是通过调用onnxsim进行操作
  • 看个人使用时机
相关推荐
NoneCoder1 天前
CSS系列(26)-- 动画性能优化详解
前端·css·性能优化
苏三说技术1 天前
Redis 性能优化的18招
数据库·redis·性能优化
程序猿会指北1 天前
【鸿蒙(HarmonyOS)性能优化指南】内存分析器Allocation Profiler
性能优化·移动开发·harmonyos·openharmony·arkui·组件化·鸿蒙开发
程序猿会指北1 天前
【鸿蒙(HarmonyOS)性能优化指南】启动分析工具Launch Profiler
c++·性能优化·harmonyos·openharmony·arkui·启动优化·鸿蒙开发
彭亚川Allen2 天前
优化了2年的性能,没想到最后被数据库连接池坑了一把
数据库·后端·性能优化
MClink2 天前
Go怎么做性能优化工具篇之pprof
开发语言·性能优化·golang
京东零售技术2 天前
Taro小程序开发性能优化实践
性能优化·taro
理想不理想v2 天前
wepack如何进行性能优化
性能优化
fantasy_arch3 天前
CPU性能优化-磁盘空间和解析时间
网络·性能优化
码农老起3 天前
企业如何通过TDSQL实现高效数据库迁移与性能优化
数据库·性能优化