--- license: mit library_name: torch-pointcloud tags: - point-cloud - 3d - pytorch - torch-pointcloud - dgcnn - classification datasets: - modelnet40 model-index: - name: dgcnn.modelnet40-2048.an-tao results: - task: type: point-cloud-classification dataset: name: ModelNet40 type: modelnet40 metrics: - name: OA type: accuracy value: 93.6 --- # Model card for dgcnn.modelnet40-2048.an-tao A DGCNN point cloud classification model (dynamic graph convolution over EdgeConv features). Trained on ModelNet40. ## Model Details - **Model Type:** Point cloud classification - **Model Stats:** - Params (M): 1.8 - Classes: 40 - Features: 2048 - **Dataset:** ModelNet40 - **Metrics:** OA 93.6 (reference 93.6) - **Paper:** [Dynamic Graph CNN for Learning on Point Clouds](https://arxiv.org/abs/1801.07829) - **Converted from:** [antao97/dgcnn.pytorch](https://github.com/antao97/dgcnn.pytorch) (MIT) - **Library:** [torch-pointcloud](https://github.com/arthurdjn/pytorch-pointcloud) ## Install ```bash pip install torch-pointcloud ``` This checkpoint also needs `pyg-lib`, which needs a build matching your torch and CUDA: see the [installation guide](https://pytorch-pointcloud.org/installation/). ## Usage ```python import torch import torch_pointcloud as tp from torch_pointcloud.utils.data import collate model, info = tp.create_model( "dgcnn.modelnet40-2048.an-tao", task="classification", pretrained=True, return_info=True, ) model = model.eval() # synthetic sample with the keys a dataset provides num_points = 8192 sample = { "pos": torch.randn(num_points, 3), "normal": torch.randn(num_points, 3), } data = info["transform"](sample) data = collate([data]) with torch.no_grad(): logits = model(data.get("x"), data["pos"], data["batch"]) ``` ## Feature extraction ```python with torch.no_grad(): embeddings = model.forward_features(data.get("x"), data["pos"], data["batch"]) model.reset_classifier(num_classes=0) with torch.no_grad(): embeddings = model(data.get("x"), data["pos"], data["batch"]) # (B, 2048) ``` ## Citation ```bibtex @article{wang2019dgcnn, title = {Dynamic Graph CNN for Learning on Point Clouds}, author = {Yue Wang and Yongbin Sun and Ziwei Liu and Sanjay E. Sarma and Michael M. Bronstein and Justin M. Solomon}, journal = {ACM Transactions on Graphics}, volume = {38}, number = {5}, year = {2019} } @inproceedings{wu2015modelnet, title = {3D ShapeNets: A Deep Representation for Volumetric Shapes}, author = {Zhirong Wu and Shuran Song and Aditya Khosla and Fisher Yu and Linguang Zhang and Xiaoou Tang and Jianxiong Xiao}, booktitle = {CVPR}, year = {2015} } @software{dujardin2026pytorchpointcloud, author = {Arthur Dujardin}, title = {PyTorch PointCloud}, year = {2026}, doi = {10.5281/zenodo.22159632}, url = {https://github.com/arthurdjn/pytorch-pointcloud}, } ```