Home

Awesome

Spiking PointNet

Official PyTorch implementation for the following paper:

Spiking PointNet: Spiking Neural Networks for Point Clouds.

TL;DR: In this paper, we have presented Spiking PointNet, the first spiking neural network (SNN) specifically designed for efficient deep learning on point clouds.

Install

The latest codes are tested on Ubuntu 18.04, CUDA10.1, PyTorch 1.6 and Python 3.7:

conda install pytorch==1.6.0 cudatoolkit=10.1 -c pytorch

Classification (ModelNet10/40)

Data Preparation

Download alignment ModelNet here and save in data/modelnet40_normal_resampled/.

Run

You can run different modes with following codes.

# ModelNet40
## Select different models in ./models 

## e.g., Pointnet without normal features
python train_classification.py --model pointnet_cls --log_dir pointnet_cls
python test_classification.py --log_dir pointnet_cls

## e.g., Spiking Pointnet without normal features
python train_classification.py --model pointnet_cls --log_dir pointnet_cls --spike --step 1
python test_classification.py --log_dir pointnet_cls --spike --step 1

# ModelNet10
## Similar setting like ModelNet40, just using --num_category 10

## e.g., Pointnet without normal features
python train_classification.py --model pointnet_cls --log_dir pointnet_cls --num_category 10
python test_classification.py --log_dir pointnet_cls --num_category 10

## e.g., Pointnet without normal features
python train_classification.py --model pointnet_cls --log_dir pointnet_cls --num_category 10 --spike --step 1
python test_classification.py --log_dir pointnet_cls --num_category 10 --spike --step 1

Performance

Comparison between our method and the vanilla SNN on ModelNet10/40 datasets

DatasetsMethodsTraining time stepsTesting time steps (1)Testing time steps (2)Testing time steps (3)Testing time steps (4)
ModelNet10ANN-92.98%
ModelNet10Vanilla SNN489.62%90.83%91.05%91.05%
ModelNet10Ours without MPP191.99%92.43%92.53%92.32%
ModelNet10Ours with MPP191.66%92.98%92.98%93.31%
ModelNet40ANN-89.20%
ModelNet40Vanilla SNN485.59%86.58%86.34%86.70%
ModelNet40Ours without MPP186.98%87.26%87.21%87.13%
ModelNet40Ours with MPP187.72%88.46%88.25%88.61%

Acknowledgment

This library is inspired by Re-Loss.

Citation

If you find Spiking PointNet codebase useful, please cite:

@inproceedings{
anonymous2023spiking,
title={Spiking PointNet: Spiking Neural Networks for Point Clouds},
author={Dayong Ren, Zhe Ma, Yuanpei Chen, Weihang Peng, Xiaode Liu, Yuhan Zhang, Yufei Guo},
booktitle={Thirty-seventh Conference on Neural Information Processing Systems},
year={2023},
url={https://openreview.net/forum?id=Ev2XuqvJCy}
}