我想从一个onnx模型中提取输入层、输出层和它们的形状等数据。我知道有python接口可以做到这一点。我想做的是类似于这样的事情 code 但在C++中。我也粘贴了链接中的代码。我已经在Python中试过了,它对我来说是有效的。我想知道是否有C++的API来做同样的事情。
import onnx
model = onnx.load(r"model.onnx")
# The model is represented as a protobuf structure and it can be accessed
# using the standard python-for-protobuf methods
# iterate through inputs of the graph
for input in model.graph.input:
print (input.name, end=": ")
# get type of input tensor
tensor_type = input.type.tensor_type
# check if it has a shape:
if (tensor_type.HasField("shape")):
# iterate through dimensions of the shape:
for d in tensor_type.shape.dim:
# the dimension may have a definite (integer) value or a symbolic identifier or neither:
if (d.HasField("dim_value")):
print (d.dim_value, end=", ") # known dimension
elif (d.HasField("dim_param")):
print (d.dim_param, end=", ") # unknown dimension with symbolic name
else:
print ("?", end=", ") # unknown dimension with no name
else:
print ("unknown rank", end="")
print()
另外,我是C++的新手,请帮助我解决这个问题。