From 316a0366e33f866c7bdff6958f5c9edd42d4022f Mon Sep 17 00:00:00 2001 From: Nicola De Cao Date: Fri, 5 Jun 2020 12:59:45 +0200 Subject: [PATCH] Initial commit --- LICENSE | 21 + README.md | 84 ++++ example.ipynb | 362 ++++++++++++++++++ power_spherical/__init__.py | 3 + .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 278 bytes .../__pycache__/distributions.cpython-36.pyc | Bin 0 -> 8252 bytes .../transformations.cpython-36.pyc | Bin 0 -> 2296 bytes power_spherical/distributions.py | 214 +++++++++++ setup.py | 18 + 9 files changed, 702 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 example.ipynb create mode 100644 power_spherical/__init__.py create mode 100644 power_spherical/__pycache__/__init__.cpython-36.pyc create mode 100644 power_spherical/__pycache__/distributions.cpython-36.pyc create mode 100644 power_spherical/__pycache__/transformations.cpython-36.pyc create mode 100644 power_spherical/distributions.py create mode 100644 setup.py diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..34d52f2 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Nicola De Cao + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..bd3df1a --- /dev/null +++ b/README.md @@ -0,0 +1,84 @@ +# The Power Spherical distribution + +## Overview +This library contains a Pytorch implementation of the Power Spherical distribution, as presented in [[1]](#citation)(http://arxiv.org/abs/2006.TBA). + +## Dependencies + +* **python>=3.6** +* **pytorch>=1.5**: https://pytorch.org + +*Notice that older version could work but they were not tested.* + +Optional dependency for [examples](https://github.com/nicola-decao/power_spherical/blob/master/example.ipynb) needed for plotting and numerical checks (again older version could work but they were not tested): +* **numpy>=1.18.1**: https://numpy.org +* **matplotlib>=3.1.1**: https://matplotlib.org +* **quadpy>=0.14.11**: https://pypi.org/project/quadpy + +## Installation + +To install, run + +```bash +$ python setup.py install +``` + +## Structure +* [distributions](https://github.com/nicola-decao/power_spherical/blob/master/power_spherical/distributions.py): Pytorch implementation of the Power Spherical and hyperspherical Uniform distributions. Both inherit from `torch.distributions.Distribution`. +* [examples](https://github.com/nicola-decao/power_spherical/blob/master/example.ipynb): Example code for using the library within a PyTorch project. + +## Usage +Please have a look into the [examples](https://github.com/nicola-decao/power_spherical/blob/master/example.ipynb). We adapted our implementation to follow the structure of the [Pytorch probability distributions](https://pytorch.org/docs/stable/distributions.html). + +Here a minimal example that demonstrate differentiable sampling: +```python +>>> 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.1786, 0.9839], grad_fn=) +``` +and computing KL divergence with the uniform distribution: +```python +>>> from power_spherical import HypersphericalUniform +>>> q = HypersphericalUniform(dim=2) +>>> torch.distributions.kl_divergence(p, q) + +tensor(1.2486, grad_fn=) +``` + +Examples of 2D and 3D plots are show in [examples](https://github.com/nicola-decao/power_spherical/blob/master/example.ipynb) and will generate something similar to these figures below. +

+ + +

+ +Please cite [[1](#citation)] in your work when using this library in your experiments. + +## Feedback +For questions and comments, feel free to contact [Nicola De Cao](mailto:nicola.decao@gmail.com). + +## License +MIT + +## Citation +``` +[1] De Cao, N., Aziz, W. (2020). +The Power Spherical distrbution. +arXiv preprint arXiv:2006.TBA. +``` + +BibTeX format: +``` +@article{decao2020power, + title={The Power Spherical distrbution}, + author={ + De Cao, Nicola and + Aziz, Wilker}, + journal={arXiv preprint arXiv:2006.TBA}, + year={2020} +} +``` diff --git a/example.ipynb b/example.ipynb new file mode 100644 index 0000000..ac945da --- /dev/null +++ b/example.ipynb @@ -0,0 +1,362 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import math\n", + "import torch\n", + "import matplotlib.pyplot as plt\n", + "from power_spherical import HypersphericalUniform, MarginalTDistribution, PowerSpherical" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "integal: tensor(1.0000)\n", + "grad: (tensor(0.0150),)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# let's prove that the MarginalT integrates to 1,\n", + "# it has gradient, and that the sampling procedure is correct\n", + "\n", + "dim = 5\n", + "scale = torch.tensor(5., requires_grad=True)\n", + "dist = MarginalTDistribution(dim, scale)\n", + "\n", + "step_size = .001\n", + "x = torch.arange(-1, 1, step_size)\n", + "y = torch.exp(dist.log_prob(x)).detach()\n", + "plt.plot(x, y, label='$p_T$')\n", + "print('integal:', y.sum() * step_size)\n", + "\n", + "x = dist.sample((10000,))\n", + "plt.hist(x, density=True, bins=50, alpha=.3, label='samples')\n", + "print('grad:', torch.autograd.grad(dist.rsample(), dist.scale))\n", + "\n", + "plt.ylim(-.1, 2.1)\n", + "plt.xlim(-1.1, 1.1)\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "integal: tensor(1.0000)\n", + "grad: (tensor([0.0479, 0.0479]), tensor(-0.0040))\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# let's prove that the PowerSpherical integrates to 1, it has gradient,\n", + "# and that the sampling procedure is correct\n", + "\n", + "loc = torch.tensor([0., 1.], requires_grad=True)\n", + "scale = torch.tensor(4., requires_grad=True)\n", + "dist = PowerSpherical(loc, scale)\n", + "\n", + "step_size = .001\n", + "x = torch.arange(0, 2 * math.pi, step_size)\n", + "pt = torch.stack((torch.cos(x), torch.sin(x))).t()\n", + "y = torch.exp(dist.log_prob(pt)).detach()\n", + "plt.plot(x, y, label='$p_X$')\n", + "print('integal:', y.sum() * step_size)\n", + "\n", + "x = dist.sample((1000,))\n", + "plt.hist((lambda v: torch.where(v > 0, v, 2 * math.pi + v))(torch.atan2(x[:,1], x[:,0])),\n", + " density=True, bins=50, alpha=.3, label='samples')\n", + "\n", + "print('grad:', torch.autograd.grad(dist.rsample() @ torch.tensor([math.sqrt(2) / 2, math.sqrt(2) / 2]),\n", + " [dist.loc, dist.scale]))\n", + "\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import mpl_toolkits.mplot3d.axes3d as axes3d\n", + "\n", + "# let's visualize samples in the sphere\n", + "\n", + "theta, phi = np.linspace(0, 2 * np.pi, 20), np.linspace(0, np.pi, 20)\n", + "THETA, PHI = np.meshgrid(theta, phi)\n", + "X, Y, Z = np.sin(PHI) * np.cos(THETA), np.sin(PHI) * np.sin(THETA), np.cos(PHI)\n", + "\n", + "fig = plt.figure(figsize=(8,8))\n", + "ax = fig.gca(projection='3d')\n", + "ax.plot_wireframe(X, Y, Z, linewidth=1, alpha=0.25, color=\"gray\")\n", + "\n", + "for loc, scale in zip(torch.eye(3), torch.tensor([10, 100, 500])):\n", + " dist = PowerSpherical(loc, scale)\n", + "\n", + " X, Y, Z = dist.sample((100,)).T\n", + " ax.scatter(X, Y, Z, s=50)\n", + " ax.plot(*torch.stack((torch.zeros_like(loc), loc)).T, linewidth=4, label=\"$\\kappa={}$\".format(scale))\n", + "\n", + "ax.view_init(30, 45)\n", + "ax.tick_params(axis='both')\n", + "plt.legend()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import quadpy\n", + "\n", + "# let's prove that the distribution integrates to 1 even in higher dimensions (dim=5)\n", + "\n", + "d = 5\n", + "loc = torch.tensor([1.] + [0.] * (d - 1))\n", + "scale = torch.tensor(5.)\n", + "dist = PowerSpherical(loc, scale)\n", + "\n", + "scheme = quadpy.nsphere.stroud_1969(d)\n", + "\n", + "def f(x):\n", + " return dist.log_prob(torch.tensor(x.T, dtype=torch.float32)).exp().detach().numpy()\n", + "\n", + "np.isclose(\n", + " scheme.integrate(f, [0.] * d, radius=1),\n", + " 1,\n", + " atol=1e-2,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor(True)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# checking mean with MC sampling\n", + "dim = 8\n", + "loc = torch.tensor([0.] * (dim - 1) + [1.])\n", + "scale = torch.tensor(3.)\n", + "dist = PowerSpherical(loc, scale)\n", + "x = dist.sample((100000,))\n", + "\n", + "torch.isclose(\n", + " x.mean(0),\n", + " dist.mean,\n", + " atol=1e-2,\n", + ").all()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor(True)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# checking covariance with MC sampling\n", + "dim = 8\n", + "loc = torch.tensor([0.] * (dim - 1) + [1.])\n", + "scale = torch.tensor(3.)\n", + "dist = PowerSpherical(loc, scale)\n", + "x = dist.sample((100000,))\n", + "x = x - x.mean(0)\n", + "\n", + "torch.isclose(\n", + " (x.unsqueeze(-1) @ x.unsqueeze(-2)).mean(0),\n", + " dist.variance,\n", + " atol=1e-2,\n", + ").all()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor(True)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# checking entropy with MC sampling\n", + "\n", + "dim = 8\n", + "loc = torch.tensor([0.] * (dim - 1) + [1.])\n", + "scale = torch.tensor(3.)\n", + "dist = PowerSpherical(loc, scale)\n", + "x = dist.sample((100000,))\n", + "\n", + "torch.isclose(\n", + " -dist.log_prob(x).mean(),\n", + " dist.entropy(),\n", + " atol=1e-2,\n", + ").all()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor(True)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# checking KL[PowerSpherical; HypersphericalUniform] with MC sampling\n", + "\n", + "dim = 8\n", + "loc = torch.tensor([0.] * (dim - 1) + [1.])\n", + "scale = torch.tensor(10.)\n", + "\n", + "dist1 = PowerSpherical(loc, scale)\n", + "dist2 = HypersphericalUniform(dim)\n", + "x = dist1.sample((100000,))\n", + "\n", + "torch.isclose(\n", + " (dist1.log_prob(x) - dist2.log_prob(x)).mean(),\n", + " torch.distributions.kl_divergence(dist1, dist2),\n", + " atol=1e-2,\n", + ").all()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/power_spherical/__init__.py b/power_spherical/__init__.py new file mode 100644 index 0000000..9434786 --- /dev/null +++ b/power_spherical/__init__.py @@ -0,0 +1,3 @@ +from .distributions import HypersphericalUniform +from .distributions import PowerSpherical +from .distributions import MarginalTDistribution diff --git a/power_spherical/__pycache__/__init__.cpython-36.pyc b/power_spherical/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..592774fbca95565229cdd09850a78ede8294578e GIT binary patch literal 278 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 KWBA)@zWHyiU0+uK literal 0 HcmV?d00001 diff --git a/power_spherical/__pycache__/transformations.cpython-36.pyc b/power_spherical/__pycache__/transformations.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a08df4c77d36dd675648d33edecdf21a11c38106 GIT binary patch literal 2296 zcmcgtO>Y}T7@nEkwKr~3Qfg6$@KIwAq=|cGq5KW?iV| zo*dLu{{RP0TsZLu_#c(#$|+ZlT;P3XZO0^0dV;m)^~}4o@5eLG`_30@YmL31Uw!vW z$k-oj>7g~-rC}iyQ#@zw>Yul{5^eD{Q-KOknF=-U1-)<@v?J0*sz$onLRVA#5liZ4 zWQ83(-v90QpZKY}K^H0*s6nvr?d7K)slvUX58X@`~JcBJZLE_OHM;h{+f z_P8+p3QIh9+bQ%CSrnrj8Fv=p~Bm& z#mZAlMoS#&7anpOI9{F%84-5U@9suH*GE|%TFQ*EqXqt$ZO&3|P*+ms<1 zJO~KBJz2h_3DKhlT1+?*roKVMZV{a~8E68E5Iq7Fd3uBuJ(h^!lRUdR(zJie5nLGb1_girKBj!pVTrbkvPUCLgX6-V84@FwlHNQ3d1kMAyLd)4*>B4{k- zAnj`@T|>%#p+-68t5Tkf(!6?OVAeDtS`g=v_!%HKC;%LpM?2vFhIUf@VUP(`S|nevA?Q?B(d2b3+8QzO$Z$5 zg^uCYX7tZ=p3h4Fu@I;qV!H?B9h%*t;maZBt2N(5piSy7?5Aa?x)cDjTT@+In(ooa i-*awd(E)tdG5Bf;^hKX?@x!Xe?Et!&r&xqRbNwH()YMA= literal 0 HcmV?d00001 diff --git a/power_spherical/distributions.py b/power_spherical/distributions.py new file mode 100644 index 0000000..171bf61 --- /dev/null +++ b/power_spherical/distributions.py @@ -0,0 +1,214 @@ +import math +import torch +from torch.distributions.kl import register_kl + + +_EPS = 1e-7 + + +class _TTransform(torch.distributions.Transform): + def _call(self, x): + t = x[..., 0].unsqueeze(-1) + v = x[..., 1:] + return torch.cat((t, v * torch.sqrt(torch.clamp(1 - t ** 2, _EPS))), -1) + + def _inverse(self, y): + t = y[..., 0].unsqueeze(-1) + v = y[..., 1:] + return torch.cat((t, v / torch.sqrt(torch.clamp(1 - t ** 2, _EPS))), -1) + + def log_abs_det_jacobian(self, x, y): + t = x[..., 0] + return ((x.shape[-1] - 3) / 2) * torch.log(torch.clamp(1 - t ** 2, _EPS)) + + +class _HouseholderRotationTransform(torch.distributions.Transform): + def __init__(self, loc): + super().__init__() + self.loc = loc + self.e1 = torch.zeros_like(self.loc) + self.e1[..., 0] = 1 + + def _call(self, x): + u = self.e1 - self.loc + u = u / (u.norm(dim=-1, keepdim=True) + _EPS) + return x - 2 * (x * u).sum(-1, keepdim=True) * u + + def _inverse(self, y): + u = self.e1 - self.loc + u = u / (u.norm(dim=-1, keepdim=True) + _EPS) + return y - 2 * (y * u).sum(-1, keepdim=True) * u + + def log_abs_det_jacobian(self, x, y): + return 0 + + +class HypersphericalUniform(torch.distributions.Distribution): + + arg_constraints = { + "dim": torch.distributions.constraints.positive_integer, + } + + def __init__(self, dim, device="cpu", dtype=torch.float32, validate_args=None): + super().__init__(validate_args=validate_args) + self.dim, self.device, self.dtype = dim, device, dtype + + def rsample(self, sample_shape=()): + v = torch.empty( + sample_shape + (self.dim,), device=self.device, dtype=self.dtype + ).normal_() + return v / (v.norm(dim=-1, keepdim=True) + _EPS) + + def log_prob(self, value): + return torch.full_like( + value[..., 0], + math.lgamma(self.dim / 2) + - (math.log(2) + (self.dim / 2) * math.log(math.pi)), + device=self.device, + dtype=self.dtype, + ) + + def entropy(self): + return -self.log_prob(torch.empty(1)) + + def __repr__(self): + return "HypersphericalUniform(dim={}, device={}, dtype={})".format( + self.dim, self.device, self.dtype + ) + + +class MarginalTDistribution(torch.distributions.TransformedDistribution): + + arg_constraints = { + "dim": torch.distributions.constraints.positive_integer, + "scale": torch.distributions.constraints.positive, + } + + has_rsample = True + + def __init__(self, dim, scale, validate_args=None): + super().__init__( + torch.distributions.Beta( + (dim - 1) / 2 + scale, (dim - 1) / 2, validate_args=validate_args + ), + transforms=torch.distributions.AffineTransform(loc=-1, scale=2), + ) + self.dim, self.scale = dim, scale + + def entropy(self): + return self.base_dist.entropy() + math.log(2) + + @property + def mean(self): + return 2 * self.base_dist.mean - 1 + + @property + def stddev(self): + return self.variance.sqrt() + + @property + def variance(self): + return 4 * self.base_dist.variance + + +class _JointTSDistribution(torch.distributions.Distribution): + def __init__(self, marginal_t, marginal_s): + super().__init__() + self.marginal_t, self.marginal_s = marginal_t, marginal_s + + def rsample(self, sample_shape=()): + return torch.cat( + ( + self.marginal_t.rsample(sample_shape).unsqueeze(-1), + self.marginal_s.rsample(sample_shape + self.marginal_t.scale.shape), + ), + -1, + ) + + def log_prob(self, value): + return self.marginal_t.log_prob(value[..., 0]) + self.marginal_s.log_prob( + value[..., 1:] + ) + + def entropy(self): + return self.marginal_t.entropy() + self.marginal_s.entropy() + + +class PowerSpherical(torch.distributions.TransformedDistribution): + + arg_constraints = { + "loc": torch.distributions.constraints.real, + "scale": torch.distributions.constraints.positive, + } + + has_rsample = True + + def __init__(self, loc, scale, validate_args=None): + + if isinstance(scale, torch.Tensor) and len(scale.shape) > 1: + assert ( + scale.shape[-1] != 1 + ), "`scale' cannot have 1 as last dimention when `isinstance(scale, torch.Tensor)' and `len(scale.shape) > 1'." + + super().__init__( + _JointTSDistribution( + MarginalTDistribution( + loc.shape[-1], scale, validate_args=validate_args + ), + HypersphericalUniform( + loc.shape[-1] - 1, + device=loc.device, + dtype=loc.dtype, + validate_args=validate_args, + ), + ), + [_TTransform(), _HouseholderRotationTransform(loc),], + ) + self.loc, self.scale, = loc, scale + + def log_prob(self, value): + return self.log_normalizer() + self.scale * torch.log1p( + (self.loc * value).sum(-1) + ) + + def log_normalizer(self): + alpha = self.base_dist.marginal_t.base_dist.concentration1 + beta = self.base_dist.marginal_t.base_dist.concentration0 + return -( + (alpha + beta) * math.log(2) + + torch.lgamma(alpha) + - torch.lgamma(alpha + beta) + + beta * math.log(math.pi) + ) + + def entropy(self): + alpha = self.base_dist.marginal_t.base_dist.concentration1 + beta = self.base_dist.marginal_t.base_dist.concentration0 + return -( + self.log_normalizer() + + self.scale + * (math.log(2) + torch.digamma(alpha) - torch.digamma(alpha + beta)) + ) + + @property + def mean(self): + return self.loc * self.base_dist.marginal_t.mean + + @property + def stddev(self): + return self.variance.sqrt() + + @property + def variance(self): + alpha = self.base_dist.marginal_t.base_dist.concentration1 + beta = self.base_dist.marginal_t.base_dist.concentration0 + ratio = (alpha + beta) / (2 * beta) + return self.base_dist.marginal_t.variance * ( + (1 - ratio) * self.loc.unsqueeze(-1) @ self.loc.unsqueeze(-2) + + ratio * torch.eye(self.loc.shape[-1]) + ) + + +@register_kl(PowerSpherical, HypersphericalUniform) +def _kl_powerspherical_uniform(p, q): + return -p.entropy() + q.entropy() diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..b2aa09c --- /dev/null +++ b/setup.py @@ -0,0 +1,18 @@ +import os +from setuptools import setup +from setuptools import find_packages + +setup( + name="power_spherical", + version="0.1.0", + author="Nicola De Cao", + author_email="nicola.decao@gmail.com", + description="Pytorch implementation of the Power Spherical distribution", + license="MIT", + keywords="pytorch machine-learning deep-learning manifold-learning", + url="https://nicola-decao.github.io", + download_url="https://github.com/nicola-decao/power_spherical", + long_description=open(os.path.join(os.path.dirname(__file__), "README.md")).read(), + install_requires=["torch>=1.5.0"], + packages=find_packages(), +)