Skip to main content

Pytorch implementation of the Power Spherical distribution

Project description

The Power Spherical distribution

REUSE status SLSA 3

Fork

This fork was made to create a wheel for pypi (in the context of which the setup was also changed/updated to pyproject.toml and poetry) and to introduce good practices in supply chain security, such as sigstore and slsa.

Overview

This library contains a Pytorch implementation of the Power Spherical distribution, as presented in [1](https://arxiv.org/abs/2006.04437).

Dependencies

Notice that older version could work but they were not tested.

Optional dependency for examples needed for plotting and numerical checks (again older version could work but they were not tested):

Installation

To install, run

pip install power-spherical

Structure

  • distributions: Pytorch implementation of the Power Spherical and hyperspherical Uniform distributions. Both inherit from torch.distributions.Distribution.
  • examples: Example code for using the library within a PyTorch project.

Usage

Please have a look into the examples. We adapted our implementation to follow the structure of the Pytorch probability distributions.

Here a minimal example that demonstrate differentiable sampling:

import torch
from power_spherical import PowerSpherical
p = PowerSpherical(
      loc=torch.tensor([0., 1.], requires_grad=True),
      scale=torch.tensor(4., requires_grad=True),
    )
p.rsample()
tensor([-0.3820,  0.9242], grad_fn=<SubBackward0>)

and computing KL divergence with the uniform distribution:

from power_spherical import HypersphericalUniform
q = HypersphericalUniform(dim=2)
torch.distributions.kl_divergence(p, q)
tensor(1.2486, grad_fn=<AddBackward0>)

Examples of 2D and 3D plots are show in examples and will generate something similar to these figures below.

Please cite [1] in your work when using this library in your experiments.

Feedback

For questions and comments, feel free to contact Nicola De Cao. For questions according to the package / setup / fork, feel free to contact Andreas Fehlner

License

MIT

Citation

[1] De Cao, N., Aziz, W. (2020). 
The Power Spherical distrbution.
In Proceedings of the 37th International 
Conference on Machine Learning, INNF+.

BibTeX format:

@article{decao2020power,
  title={The Power Spherical distrbution},
  author={
    De Cao, Nicola and
    Aziz, Wilker},
  journal={Proceedings of the 37th International Conference on Machine Learning, INNF+},
  year={2020}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

power_spherical-0.8.1.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

power_spherical-0.8.1-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file power_spherical-0.8.1.tar.gz.

File metadata

  • Download URL: power_spherical-0.8.1.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for power_spherical-0.8.1.tar.gz
Algorithm Hash digest
SHA256 72dbe2a8436b5a693b4f6fdd0f60e37f9509218531f623bd57ea9fec155cf4ae
MD5 15386290f1f5ecd207e9b26e99ad2664
BLAKE2b-256 b6442fe941d76e8b13ff96122fc2e529e2ca93690a0b34f991989743ed269628

See more details on using hashes here.

File details

Details for the file power_spherical-0.8.1-py3-none-any.whl.

File metadata

File hashes

Hashes for power_spherical-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ebd793c0213babe2acc11d8971b314e51c1f14c1c2f84902cf1c9d60080023b6
MD5 3e99958dd10d3661b38680bbe63413bb
BLAKE2b-256 d6eebd0e02b9fc8a8a2b5afef00c257f7235ecc11e0003caab11fde13df2fcfc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page