如何从ONNX模型获取权重/偏差矩阵值,我目前可以从model.onnx
获取输入,内核大小,步幅和填充值。我加载模型,然后读取图节点以得到相同的结果:
import onnx
m = onnx.load('model.onnx')
print(m.graph.node)
答案 0 :(得分:0)
在官方git repo上发布问题后,我得到了问题的答案。我们可以从m.graph
中的初始值设定项访问权重值。
weights = m.graph.initializer
要获取权重矩阵,您需要使用 onnx 中的numpy_helper
。
from onnx import numpy_helper
w1 = numpy_helper.to_array(weights[0])
答案 1 :(得分:0)
from onnx import numpy_helper
MODEL_PATH = "....../resnet50"
_model = onnx.load(MODEL_PATH + "/model.onnx")
INTIALIZERS=_model.graph.initializer
Weight=[]
for initializer in INTIALIZERS:
W= numpy_helper.to_array(initializer)
Weight.append(W)
答案 2 :(得分:0)
以下代码可帮助您从onnx模型创建状态字典。
import onnx
from onnx import numpy_helper
onnx_model = onnx.load("model.onnx")
INTIALIZERS = onnx_model.graph.initializer
onnx_weights = {}
for initializer in INTIALIZERS:
W = numpy_helper.to_array(initializer)
onnx_weights[initializer.name] = W