专栏算法工具链使用已经训练好的Unet模型导出ONNX模型无反应

使用已经训练好的Unet模型导出ONNX模型无反应

已解决
FDwuyun2023-05-18
51
5
1.芯片型号:X3派
2.天工开物开发包OpenExplorer版本:XJ3_OE_2.5.2
3.问题定位:模型转换为onnx没有报错,但是也没有生成onnx模型
4.问题具体描述

使用export_onnx.py脚本执行以下命令

python3 tools/export_onnx.py --config configs/segmentation/unet.py --ckpt float-checkpoint-best.pth.tar --onnx-name unet.onnx

没有报具体错误,也没有生成onnx模型,终端输出的信息感觉有用的如下:

/horizon_plugin_pytorch/nn/interpolate.py:69: UserWarning: default upsampling behavior when mode=bilinear is changed to align_corners=False since torch 0.4.0. Please specify align_corners=True if the old behavior is desired.

warnings.warn(

输出到这里就戛然而止了。

我以为是路径配置问题,又使用如下命令,还是一样。

python3 tools/export_onnx.py --config configs/segmentation/unet.py --ckpt tmp_models/dwunet_seg/float-checkpoint-best.pth.tar --onnx-name tmp_models/dwunet_seg/unet.onnx

所以如何将float-checkpoint-best.pth.tar转化为onnx模型?

算法工具链
评论2
0/1000
  • 颜值即正义
    Lv.2
    您好,请在configs/segmentation/unet.py代码中增加以下onnx_cfg关键字,然后再使用export_to_onnx.py导出
    onnx_cfg = dict(
    model=deploy_model,
    stage="float",
    inputs=deploy_inputs,
    model_convert_pipeline=dict(
    type="ModelConvertPipeline",
    converters=[
    dict(
    type="LoadCheckpoint",
    checkpoint_path=os.path.join(
    ckpt_dir, "float-checkpoint-best.pth.tar"
    ),
    ignore_extra=True,
    ),
    ],
    ),
    )
    2023-05-18
    0
    3
    • FDwuyun回复颜值即正义:
      onnx_cfg = dict(
      model=deploy_model,
      stage="float",
      inputs=deploy_inputs,
      model_convert_pipeline=float_predictor["model_convert_pipeline"],
      )
      这是configs/segmentation/unet.py代码中原来的onnx_cfg关键字,我将其注释掉。

      加上

      onnx_cfg = dict(

      model=deploy_model,

      stage="float",

      inputs=deploy_inputs,

      model_convert_pipeline=dict(

      type="ModelConvertPipeline",

      converters=[

      dict(

      type="LoadCheckpoint",

      checkpoint_path=os.path.join(

      ckpt_dir, "float-checkpoint-best.pth.tar"

      ),

      ignore_extra=True,

      ),

      ],

      ),

      )

      但是问题还是和原来一样。

      2023-05-18
      0
    • 颜值即正义回复FDwuyun:
      您好,请查看您的工作空间,我这边修改了config文件中的ckpt_dir = "../release_models/%s" % task_name,然后运行python3 tools/export_onnx.py --config configs/segmentation/unet.py,成功在/release_models/dwunet_seg文件夹下生成了float.onnx,请检查你的workspace是否已有onnx生成,另外,输出到warnings.warn并不是出错了,而是已经生成了onnx
      2023-05-18
      0
    • FDwuyun回复颜值即正义:

      好的,谢谢,确实可以生成float.onnx,我以为加上--onnx-name unet.onnx这个会生成unet.onnx,不会重复的,原来是这个没用。

      2023-05-18
      0
  • 颜值即正义
    Lv.2
    2023-05-18
    0
    0