zoukankan      html  css  js  c++  java
  • 对ONNX模型进行BN和卷积层的融合

    对Resnet50.onnx模型进行BN和卷积层的融合

    一、准备工作

    安装ONNX

    You can then install ONNX from PyPi (Note: Set environment variable ONNX_ML=1 for onnx-ml):

    pip install onnx

    You can also build and install ONNX locally from source code:

    git clone https://github.com/onnx/onnx.git

    cd onnx

    git submodule update --init --recursive

    python setup.py install

    二、源码

    import onnx
    import os
    from onnx import optimizer
    
    # Preprocessing: load the model contains two transposes.
    # model_path = os.path.join('resources', 'two_transposes.onnx')
    # original_model = onnx.load(model_path)
    original_model = onnx.load("resnet50.onnx")
    print('The model before optimization: {}'.format(onnx.helper.printable_graph(original_model.graph)))


    # A full list of supported optimization passes can be found using get_available_passes() all_passes = optimizer.get_available_passes() print("Available optimization passes:") for p in all_passes: print(' {}'.format(p)) print() # Pick one pass as example passes = ['fuse_add_bias_into_conv'] # Apply the optimization on the original serialized model optimized_model = optimizer.optimize(original_model, passes) print('The model after optimization: {}'.format(onnx.helper.printable_graph(optimized_model.graph)))

    # save new model
    onnx.save(optimized_model, "newResnet50.onnx")

  • 相关阅读:
    GORM模型(Model)创建
    GORM高级查询
    LogAgent
    安装kafka
    go读取日志tailf
    bubble清单
    go操作kafka
    GORM模型删除
    Vue 父子组件间的传值
    列表和表格
  • 原文地址:https://www.cnblogs.com/wanggangtao/p/11388835.html
Copyright © 2011-2022 走看看