Keras转ONNX模型报错:'tuple' object has no attribute 'graph'求助
问题排查与修复
你遇到的错误是因为tf2onnx.convert.from_keras()返回的是一个元组(包含ONNX模型原型和外部数据信息),而非单一的ONNX模型对象,同时最后一行错误地将Keras模型model传给了onnx.save()。
修正后的代码
import tf2onnx import onnx from tensorflow.python.keras import models # 加载Keras模型 model = models.load_model("model.h5") # 转换模型,取元组中的第一个元素(ONNX模型原型) onnx_model, _ = tf2onnx.convert.from_keras(model, opset=13) # 保存正确的ONNX模型对象 onnx.save(onnx_model, 'test.onnx')
关键修正点
tf2onnx.convert.from_keras()返回(onnx_model_proto, external_data)元组,我们只需要第一个元素作为可保存的ONNX模型- 最后一行必须传入转换得到的
onnx_model,而非原始的Keras模型model
可选验证步骤
转换完成后可验证ONNX模型的有效性:
# 加载并验证模型 loaded_model = onnx.load('test.onnx') onnx.checker.check_model(loaded_model) print("ONNX模型验证通过")
内容的提问来源于stack exchange,提问作者Dr_ryu
相关产品推荐
相关产品推荐

