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")
相关推荐
weixin_4684668515 天前
PyTorch导出ONNX格式分割模型及在C#中调用预测
人工智能·pytorch·深度学习·c#·跨平台·onnx·语义分割
charlee4419 天前
从零实现一个生产级 RAG 语义搜索系统:C++ + ONNX + FAISS 实战
c++·faiss·onnx·rag·语义搜索
Together_CZ1 个月前
ultralytics.utils.export——engine.py、imx.py、tensorflow.py各模型导出子模块代码详读
tensorflow·onnx·ultralytics·utils.export·engine.py·imx.py·模型导出
love530love1 个月前
告别环境崩溃:ONNX 与 Protobuf 版本兼容性指南
人工智能·windows·python·onnx·stablediffusion·comfyui·protobuf
深色風信子2 个月前
SpringAi 加载 ONNX Embedding
embedding·onnx·springai
abcd_zjq2 个月前
VS2022+QT6.9配置ONNXruntime GPU、CUDA、cuDNN(附官网下载链接)(GPU开启代码示例)
qt·visual studio·cuda·onnx
Techblog of HaoWANG2 个月前
目标检测与跟踪 (7)- YOLOv8 ONNX量化模型部署指南
yolo·目标检测·onnx·量化部署
地狱为王2 个月前
Unity使用sherpa-onnx实现关键词检测
unity·onnx·sherpa-onnx·关键词检测
月满星沉2 个月前
ONNX量化
深度学习·onnx·量化
无心水2 个月前
【神经风格迁移:性能】23、边缘艺术革命:树莓派+ONNX实现本地神经风格迁移,单张<2秒
pytorch·边缘计算·树莓派·onnx·int8·神经风格迁移:性能·神经风格