首页 > 解决方案 > 转换 Pytorch Yolact (.pth) 模型以在 C++ 中部署

问题描述

我正在使用YOLACT++,我想使用 C++ 部署它。最初模型保存为 yolact.pth 文件,我从无法直接将 .pth 转换为可以在 C++ 中调用的 .pt 文件的问题中意识到这个问题,我需要先将其转换为 ONNX输出 yolact.onnx 作为输出。我在问题中使用此解决方案将其转换为 ONNX ,在此问题下方的评论中,您可以看到他用于从 yolact.pth 实现 yolact.onnx 转换模型的终端命令。

所以我的问题是我真的不明白接下来如何使用 C++ 部署它。我应该寻找从 yolact.onnx 转换为 yolact.pt 的解决方案,还是可以从 C++ 调用 yolact.onnx?在此工作流程的一个问题中给出了一个有趣的方向: Pytorch->ONNX->NCNN,他在 ARM 设备上使用 C++ 推理对其进行了测试。这就是我要找的。我对 C++ 不是很熟悉,所以我不知道方向。

我还尝试将其添加到调用模型的 eval.py 末尾:

    sm = torch.jit.script(net)
    sm.save("Yolact.pt")
    

我得到了错误:

    torch.jit.frontend.UnsupportedNodeError: with statements aren't 
    supported: (line 570 in yolact.py)

第 570 行是:

     with timer.env('backbone'):

我把它注释掉了,它在第 574 行的下一个“timer.env”上给出了错误,依此类推!

标签: pythonc++pytorchonnxtorchscript

解决方案


推荐阅读