我有一个包含文本分类器的ONNX模型文件。我也有数据,我的目的是测试模型上的新数据。但是我不能运行这些密码。首先,我尝试下面的代码,什么都不会发生。
model_name = 'text_model.onnx'
onnx_model = onnx.load(model_name)
onnx.checker.check_model(onnx_model)
那我试试这个
ort.InferenceSession(onnx_model, None)
但我发现了一个错误:
TypeError: Unable to load from type '<class 'onnx.onnx_ml_pb2.ModelProto'>'
我该怎么办?
发布于 2022-08-17 12:36:57
对我有效的是下面的代码
from onnxruntime import InferenceSession
filename = "./svm_iris.onnx"
def execute_onnx_model_from_file(filename: str) -> None:
sess = InferenceSession(filename)
x_test, y_test = json_to_ndarray()
sess.run(None, {"X": x_test.astype(np.float32)})[0]
在文档中,指定可以将存储的ONNX的文件名传递给InferenceSession。另一个更接近您的代码的解决方案是序列化onnx模型:
from onnxruntime import InferenceSession
filename = "./svm_iris.onnx"
def execute_onnx_model_from_file(filename: str) -> None:
onnx_model = onnx.load(filename)
sess = InferenceSession(onnx_model.SerializeToString())
x_test, y_test = json_to_ndarray()
sess.run(None, {"X": x_test.astype(np.float32)})[0]
https://stackoverflow.com/questions/73387770
复制相似问题