Feature/ml model skeleton - #7414
Conversation
- Add Model class with LoadModel() and Forward() stubs - Add IsPyTorchRuntimeEnabled() compile-time check - Add OPEN3D_BUILD_PYTORCH_OPS compile definition Part of: Enable 3DML processing in C++
|
Thanks for submitting this pull request! The maintainers of this repository would appreciate if you could update the CHANGELOG.md based on your changes. |
|
Hi @xiaoya27 thanks for picking this up! This is awesome! We already have DLPack support, so you should be able to skip this. Also, since the roadmap discussion, PyTorch has released executorch which is specifically designed for deployment (inference). This is quite a bit lighter than full PyTorch, while being compatible with PyTorch checkpoints. We should switch to executorch for Open3D. |
|
Thanks @ssheorey! ExecuTorch makes a lot of sense here given its focus on lean inference. I'd like to clarify the integration strategy:
|
|
Either approach - dlopen() or static / shared link at build time is fine. We will accept either. The cmake code required will likely be very similar. dlopen() has the advantage of keeping this heavy feature optional for users of the Open3D binaries / python package. |
Type
Motivation and Context
This is part of the #6778 initiative and part of the roadmap in the discussion . It adds the foundational
open3d::ml::Modelclass that will allow loading PyTorch models exported via AOTInductor for C++ inference.This PR establishes the API skeleton. Follow-up PRs will implement:
Checklist:
python util/check_style.py --applyto apply Open3D code style to my code.Description
Adds
open3d::ml::Modelclass with:LoadModel(path)- stub for loading model artifactsForward(inputs)- stub for running inferenceIsPyTorchRuntimeEnabled()- compile-time check forBUILD_PYTORCH_OPSOPEN3D_BUILD_PYTORCH_OPScompile definitionUnit tests included for basic API validation.