Paddle2ONNX icon indicating copy to clipboard operation
Paddle2ONNX copied to clipboard

plato-mini导出onnx模型失败

Open Francis235 opened this issue 1 year ago • 4 comments

请将下面信息填写完整,便于我们快速解决问题,谢谢!

问题描述 从paddlehub中加载plato-mini,可以执行推理,但在使用paddle.onnx.export或者model.save_inference_model导出模型时会报错

更多信息 :

  • 用于部署的推理引擎: onnxruntime
  • 为什么需要转换为ONNX格式:进行模型部署
  • Paddle2ONNX版本: paddle-bfloat 0.1.7 paddle2onnx 1.0.6 paddlefsl 1.1.0 paddlehub 2.3.1 paddlenlp 2.5.2 paddlepaddle 2.4.2
  • 你的联系方式(Email/Wechat/Phone):[email protected]

报错截图

1681202821897_35DC9A07-E2E0-4993-9BFC-37738C6FFA64

其他信息

Francis235 avatar Apr 11 '23 08:04 Francis235

测试代码: import paddlehub as hub import paddle import paddle.static as static

model = hub.Module(name='plato-mini')

input_ids = paddle.static.InputSpec([1,7],'float32','input_ids') token_type_ids = paddle.static.InputSpec([1,7],'float32','token_type_ids') position_ids = paddle.static.InputSpec([1,7],'float32','position_ids') attention_mask = paddle.static.InputSpec([1,1,7,7],'float32','attention_mask')

save_path = 'checkpoint/plato-mini' # 需要保存的路径 paddle.onnx.export(model, save_path, input_spec=[input_ids,token_type_ids,position_ids,attention_mask], opset_version=11)

model.save_inference_model(dirname="checkpoint/", model_filename = "checkpoint/plato-mini.pdparams", params_filename = "checkpoint/plato-mini.pdmodel", input_spec=[input_ids,token_type_ids,position_ids,attention_mask])

paddle.save(model.state_dict(),'checkpoint/plato-mini.pdparams') paddle.save(model,'checkpoint/plato-mini.pdmodel')

data = [["你是谁?"]] result = model.predict(data) print(result)

Francis235 avatar Apr 11 '23 08:04 Francis235

看起来还没有到Paddle2ONNX就报错了,你用Paddle2ONNX命令行直接转一下试试

yeliang2258 avatar Apr 12 '23 03:04 yeliang2258

.pdparams和.pdmodel文件转不出来,没法用命令行,你们有的话能方便提供一下吗

Francis235 avatar Apr 12 '23 06:04 Francis235

这个可以去PaddleHub下提issue咨询一下,先导出为部署用的静态图模型,再用Paddle2ONNX转换试试

yeliang2258 avatar Apr 12 '23 14:04 yeliang2258