Skip to content

Pointnet++ integration #24

@ErikKrauter

Description

@ErikKrauter

The init.py file of the "modules" package tries to import the pn2_modules file. However, that script does not exist. I would like to ask whether there are implementations of Pointnet++ for ManiSkill2-Learn available?

If there are none available, I would like to ask for some guidance, on how to correctly integrate the Pointnet++ architecture into the ManiSkill2-Learn framework.

I have implemented a Pointnet++ module based on this repository
However, I am not sure how to integrate it correctly into the ManiSkill2-Learn framework so that it correctly parallelizes over multiple GPUs using DDP.
All I have done was to create a thin wrapper around the original implementation from the repository mentioned above. The wrapper inherits from ExtendedModule:

from pointnet2.models.pointnet2_ssg_cls import PointNet2ClassificationSSG

@BACKBONES.register_module(name='PointNet2')
class PointNet2(ExtendedModule):
    def __init__(self, hparams):
        super(PointNet2, self).__init__()
        print("CONSTRUCTING POINTNET++")
        print(hparams)
        self.model = PointNet2SemSegSSG(hparams)

    def forward(self, pointcloud):
        return self.model.forward(pointcloud)

During the construction of the RL agent the pointnet++ backbone is built through the Backbones registry. The underlying network structure (MLPs, ConvMLPs, activation functions etc.) are not built through the registry and they do not inherit from ExtendedModule.
I am not sure if this approach is compatible with how ManiSkill2-Learn's multi-GPU parallelization works.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions