如何从 ONNX 模型中获取权重/偏置矩阵值,我目前可以从model.onnx
. 我加载模型,然后读取图形节点以获得相同的结果:
import onnx
m = onnx.load('model.onnx')
print(m.graph.node)
如何从 ONNX 模型中获取权重/偏置矩阵值,我目前可以从model.onnx
. 我加载模型,然后读取图形节点以获得相同的结果:
import onnx
m = onnx.load('model.onnx')
print(m.graph.node)
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)
以下代码可帮助您从 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
在官方 git repo 上发布问题后,我得到了问题的答案。我们可以从 中的初始化程序访问权重值m.graph
。
weights = m.graph.initializer
要获得权重矩阵,您需要使用numpy_helper
from onnx。
from onnx import numpy_helper
w1 = numpy_helper.to_array(weights[0])