Как прочитать значения веса и смещения отдельных слоев из модели ONNX? - PullRequest
0 голосов
/ 19 сентября 2018

Как получить значения матрицы вес / смещение из модели ONNX, в настоящее время я могу получить входные данные, размер ядра, шаг и значения площадки из model.onnx.Я загружаю модель и затем читаю узлы графа, чтобы получить то же самое:

import onnx
m = onnx.load('model.onnx')
print(m.graph.node)

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018
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)
0 голосов
/ 20 сентября 2018

После публикации вопроса на официальном git-репо я получил ответ на вопрос.Мы можем получить доступ к значениям веса из инициализаторов в m.graph.

weights = m.graph.initializer

Чтобы получить матрицу весов, вам нужно использовать numpy_helper из onnx .

from onnx import numpy_helper
w1 = numpy_helper.to_array(weights[0])
...