This is the reference implementation of our ICLR 2025 paper Unlocking Point Processes through Point Set Diffusion.
If you build upon this work, please cite our paper as follows:
@inproceedings{luedke2025psdiff,
title={Unlocking Point Processes through Point Set Diffusion},
author={David L{\"u}dke and Enric Rabasseda Ravent{\'o}s and Marcel Kollovieh and Stephan G{\"u}nnemann},
booktitle={The Thirteenth International Conference on Learning Representations},
year={2025},
url={https://openreview.net/pdf?id=4anfpHj0wf}
}
The code has been tested on a cluster of Linux nodes using SLURM.
We cannot guarantee the functioning of the code if the following requirements are not met:
To properly install and run our code we recommend using a virtual environment (e.g., created via
pyenv-virtualenvorconda).
The entire installation process consists of 3 steps. You can skip step 0 at you own "risk".
In the following we show how to create the environment via pyenv and pyenv-virtualenv.
The steps are the following:
- install
pyenv(if you don't have it yet) by following the original guidelines; - install the correct Python version:
pyenv install 3.10.4
- create a virtual environment with the correct version of Python:
pyenv virtualenv 3.10.4 ps-diff
This step allows you to download the code in your machine, move into the correct directory and (optional) activate the correct environment. The steps are the following:
- clone the repository:
git clone https://github.com/davecasp/ps-diff.git
- change into the repository:
cd point-set-diff - (optional) activate the environment
pyenv activate ps-diff
All the required packages are defined in the pyproject.toml file and can be easily installed via pip as following:
pip install -r requirements.txtConfiguring experiments and running the code is done via hydra. If you are unfamiliar with how hydra works please check out the documentation.
To run our Model for a datatype:
./train.py -m --config-name config_namewhere config_name should be spp_train or stpp_train or tpp_train. All seeds and datasets are scheduled as a gridsearch via the multirun flag.
Example will be added in due time