Deployment Question
Hi, I want to test spunet and pt series on my own data. What inference framework dose your code support? spconv seems not support jit. Any advise to convert your pytorch model to onnx or openvino? Thanks a lot
We also want to deploy the model. We were checking the dependencies and the most problematic issue seems like spconv dependency. There is a comment for substituting SubMConv3D, which would solve most of the issues for us. (https://github.com/Pointcept/Pointcept/blob/2b247ed555e96eae11710dfde79a3fc16c8c74b3/pointcept/models/point_transformer_v3/point_transformer_v3m1_base.py#L497C9-L497C36)
Does the authors have any suggestions on what to replace it with?
We also want to deploy the model. We were checking the dependencies and the most problematic issue seems like spconv dependency. There is a comment for substituting SubMConv3D, which would solve most of the issues for us. (https://github.com/Pointcept/Pointcept/blob/2b247ed555e96eae11710dfde79a3fc16c8c74b3/pointcept/models/point_transformer_v3/point_transformer_v3m1_base.py#L497C9-L497C36)
Does the authors have any suggestions on what to replace it with?
I was thinking maybe we could remove the SpConv layer in the embedding stage for a slightly efficient. (Not remove all SpConv layer).
Hi, I want to test spunet and pt series on my own data. What inference framework dose your code support? spconv seems not support jit. Any advise to convert your pytorch model to onnx or openvino? Thanks a lot
Hi, I think it would be a bit tricky to deploy 3D backbones with a framework like Onnx, as some operators are directly written with CUDA and I am not an expert in deployment.
But for custom datasets, you can directly use Pointcept to do inference (use or modify test script). A discussion is available here (https://github.com/Pointcept/Pointcept/issues/108).
Hello yangqifan913, I'm also experiencing a similar issue. I'm currently trying to convert the Point Transformer V3 model to ONNX format, but I haven't fully resolved it yet.
Have you made any progress on this problem? If you've had success in converting Point Transformer V3 or similar models to ONNX, would you be able to share your process or code? Any insights, especially regarding issues with spconv or handling complex input structures, would be greatly appreciated.
Thank you very much.
@smileyr99 In fact, I gave up this idea after a short research. At that time there seems to be no relevant work to convert the spconv lib into onnx operator(I don't know if any progress in the last few months), so I turned to other easy deployment models. If you're willing to try other backbones, please try octformer in the same repo, or waffleirion https://github.com/valeoai/WaffleIron . They can all be easily converted directly to onnx format because they are all written entirely in pytorch. On my own datasets, they all performed well
Hi all, one choice is to replace SpConv with OCNN. Pengshuai rewrites OCNN with Pytorch and it is easy to deploy.
@smileyr99 사실, 저는 짧은 조사 후에 이 아이디어를 포기했습니다. 그 당시에는 spconv 라이브러리를 onnx 연산자로 변환하는 관련 작업이 없는 듯했습니다(지난 몇 달 동안 진전이 있었는지 모르겠습니다). 그래서 저는 다른 쉬운 배포 모델로 전환했습니다. 다른 백본을 시도할 의향이 있다면 같은 리포지토리에 있는 octformer나 waffleirion https://github.com/valeoai/WaffleIron 을 시도해 보세요 . 모두 pytorch로만 작성되었기 때문에 onnx 형식으로 직접 쉽게 변환할 수 있습니다. 제 데이터 세트에서는 모두 잘 수행되었습니다.
Thank you for your quick response and advice! The work related to converting the spconv library to ONNX operators has still not been completed... I’ll be sure to test the octformer or waffleiron backbone models you recommended. I really appreciate you sharing this valuable information.
Hi all, one choice is to replace SpConv with OCNN. Pengshuai rewrites OCNN with Pytorch and it is easy to deploy.
HI @Gofinge Even if we replace SpConv with OCNN, will there be any significant impact on performance?
Fundamentally, they are the same thing
Oh, I see. Thank you! I didn't realize it worked on the same principle. Thanks for sharing that information. I'll proceed with this approach. Thanks again!