5.1 onnx 修改权重示例

前言

对onnx 结构中的权重进行修改

比如:原本是一个标量,修改为一个一维数组

code

cpp 复制代码
import onnx
import numpy as np
import  torch
import argparse
from onnx import TensorProto, helper, numpy_helper

# 检查onnx计算图
def check_onnx(model):
    onnx.checker.check_model(model)


onnx_path = "./bs16_seq397.onnx"
save_path = "./bs16_seq397_m.onnx"
model = onnx.load(onnx_path)
graph = model.graph

# 修改 initializer
initializer1 = helper.make_tensor("537", TensorProto.FLOAT, [1], np.array([397]))
initializer2 = helper.make_tensor("540", TensorProto.FLOAT, [1], np.array([0]))
initializer3 = helper.make_tensor("1707", TensorProto.FLOAT, [1], np.array([2]))

# print(graph.initializer)
for initializer in graph.initializer:
    if initializer.name =="537":
        graph.initializer.remove(initializer)
        graph.initializer.append(initializer1)
    if initializer.name =="540":
        graph.initializer.remove(initializer)
        graph.initializer.append(initializer2)
    if initializer.name =="1707":
        graph.initializer.remove(initializer)
        graph.initializer.append(initializer3)


graph = onnx.helper.make_graph(graph.node, graph.name, graph.input, graph.output, graph.initializer)
info_model = onnx.helper.make_model(graph)
info_model.ir_version = 8
info_model.opset_import[0].version = 11

check_onnx(info_model)
onnx.save_model(info_model, save_path)
print(f"modify onnx done, save path:{save_path} \n")
相关推荐
Together_CZ2 天前
ultralytics.utils.export——engine.py、imx.py、tensorflow.py各模型导出子模块代码详读
tensorflow·onnx·ultralytics·utils.export·engine.py·imx.py·模型导出
love530love16 天前
告别环境崩溃:ONNX 与 Protobuf 版本兼容性指南
人工智能·windows·python·onnx·stablediffusion·comfyui·protobuf
深色風信子24 天前
SpringAi 加载 ONNX Embedding
embedding·onnx·springai
abcd_zjq1 个月前
VS2022+QT6.9配置ONNXruntime GPU、CUDA、cuDNN(附官网下载链接)(GPU开启代码示例)
qt·visual studio·cuda·onnx
Techblog of HaoWANG1 个月前
目标检测与跟踪 (7)- YOLOv8 ONNX量化模型部署指南
yolo·目标检测·onnx·量化部署
地狱为王1 个月前
Unity使用sherpa-onnx实现关键词检测
unity·onnx·sherpa-onnx·关键词检测
月满星沉1 个月前
ONNX量化
深度学习·onnx·量化
无心水1 个月前
【神经风格迁移:性能】23、边缘艺术革命:树莓派+ONNX实现本地神经风格迁移,单张<2秒
pytorch·边缘计算·树莓派·onnx·int8·神经风格迁移:性能·神经风格
deephub2 个月前
ONNX Runtime Python 推理性能优化:8 个低延迟工程实践
开发语言·人工智能·python·神经网络·性能优化·onnx
腾飞开源2 个月前
40_Spring AI 干货笔记之 Transformers (ONNX) 嵌入
人工智能·huggingface·onnx·transformers·嵌入模型·spring ai·句子转换器