Open 471417367 opened 2 years ago
用户你好,
你可以试一下如下脚本:
import paddlehub as hub from paddle.static import InputSpec
in_spec = InputSpec([None, 3, 384, 384], 'float32') human_seg = hub.Module(name="FCN_HRNet_W18_Face_Seg") human_seg.export_onnx_model(dirname="output/model", input_spec=[in_spec])
另外,请问你们导出为ONNX的用途是?用什么推理引擎进行部署呢?
@yeliang2258 使用的环境比较杂,经常涉及到Paddle,pytorch(yolov5),tensorflow(bert)等为了部署的时候简单,都统一转onnx。
paddlepaddle-gpu==0.0.0.post110 paddlehub==2.1.1
以下方式都失败了: 方式1: import paddlehub as hub
human_seg = hub.Module(name="FCN_HRNet_W18_Face_Seg") human_seg.save_inference_model(dirname="output/", model_filename="output/inference.pdmodel", params_filename="output/inference.pdiparams") 报错:RuntimeError: Module FCN_HRNet_W18_Face_Seg lacks input_spec, please specify it when calling save_inference_model.
方式2: import paddlehub as hub import paddle
human_seg = hub.Module(name="FCN_HRNet_W18_Face_Seg") human_seg.save_inference_model(dirname="output/", model_filename="output/inference.pdmodel", params_filename="output/inference.pdiparams", input_spec=[None, 3, 384, 384]) 报错:ValueError: The decorated function forward requires 0 arguments: [], but received 4 with (None, 3, 384, 384).
方式3: import paddlehub as hub import paddle
human_seg = hub.Module(name="FCN_HRNet_W18_Face_Seg") input_spec = paddle.static.InputSpec(shape=[None, 3, 384, 384], dtype='float32', name='FCN_HRNet_W18_Face_Seg') paddle.onnx.export(human_seg, 'model', input_spec=[input_spec], opset_version=11) 报错:ValueError: The decorated function forward requires 0 arguments: [], but received 1 with (InputSpec(shape=(-1, 3, 384, 384), dtype=paddle.float32, name=FCN_HRNet_W18_Face_Seg),).
另外也尝试过网上能找到的一些模型加载后再保存的方式都失败,请问有转换成功的可以分享下吗? paddle2onnx的转换对只有一个seg_model_384.pdparams模型文件的怎么转换呢? PaddleSeg中利用export.py转模型需要传configs的,yml文件,没有FCN_HRNet_W18_Face_Seg的。