bayinx 0.2.28__py3-none-any.whl → 0.2.30__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- bayinx/{core/constraints.py → constraints/lower.py} +1 -22
- bayinx/core/constraint.py +26 -0
- bayinx/core/model.py +4 -4
- bayinx/core/variational.py +2 -2
- bayinx/dists/censored/gamma2/r.py +65 -0
- bayinx/dists/gamma2.py +39 -0
- bayinx/dists/normal.py +16 -16
- bayinx/dists/uniform.py +5 -5
- bayinx/mhx/vi/flows/fullaffine.py +10 -10
- bayinx/mhx/vi/meanfield.py +1 -3
- {bayinx-0.2.28.dist-info → bayinx-0.2.30.dist-info}/METADATA +1 -1
- bayinx-0.2.30.dist-info/RECORD +29 -0
- bayinx-0.2.28.dist-info/RECORD +0 -27
- /bayinx/{dists/binomial.py → constraints/__init__.py} +0 -0
- /bayinx/dists/{gamma.py → censored/__init__.py} +0 -0
- {bayinx-0.2.28.dist-info → bayinx-0.2.30.dist-info}/WHEEL +0 -0
@@ -1,30 +1,9 @@
|
|
1
|
-
from abc import abstractmethod
|
2
1
|
from typing import Tuple
|
3
2
|
|
4
|
-
import equinox as eqx
|
5
3
|
import jax.numpy as jnp
|
6
4
|
from jaxtyping import Array, ArrayLike, Scalar, ScalarLike
|
7
5
|
|
8
|
-
|
9
|
-
class Constraint(eqx.Module):
|
10
|
-
"""
|
11
|
-
Abstract base class for defining parameter constraints.
|
12
|
-
"""
|
13
|
-
|
14
|
-
@abstractmethod
|
15
|
-
def constrain(self, x: ArrayLike) -> Tuple[Array, Scalar]:
|
16
|
-
"""
|
17
|
-
Applies the constraining transformation to an unconstrained input and computes the log-absolute-jacobian of the transformation.
|
18
|
-
|
19
|
-
# Parameters
|
20
|
-
- `x`: The unconstrained JAX Array-like input.
|
21
|
-
|
22
|
-
# Returns
|
23
|
-
A tuple containing:
|
24
|
-
- The constrained JAX Array.
|
25
|
-
- A scalar JAX Array representing the laj of the transformation.
|
26
|
-
"""
|
27
|
-
pass
|
6
|
+
from bayinx.core.constraint import Constraint
|
28
7
|
|
29
8
|
|
30
9
|
class LowerBound(Constraint):
|
@@ -0,0 +1,26 @@
|
|
1
|
+
from abc import abstractmethod
|
2
|
+
from typing import Tuple
|
3
|
+
|
4
|
+
import equinox as eqx
|
5
|
+
from jaxtyping import Array, ArrayLike, Scalar
|
6
|
+
|
7
|
+
|
8
|
+
class Constraint(eqx.Module):
|
9
|
+
"""
|
10
|
+
Abstract base class for defining parameter constraints.
|
11
|
+
"""
|
12
|
+
|
13
|
+
@abstractmethod
|
14
|
+
def constrain(self, x: ArrayLike) -> Tuple[Array, Scalar]:
|
15
|
+
"""
|
16
|
+
Applies the constraining transformation to an unconstrained input and computes the log-absolute-jacobian of the transformation.
|
17
|
+
|
18
|
+
# Parameters
|
19
|
+
- `x`: The unconstrained JAX Array-like input.
|
20
|
+
|
21
|
+
# Returns
|
22
|
+
A tuple containing:
|
23
|
+
- The constrained JAX Array.
|
24
|
+
- A scalar JAX Array representing the laj of the transformation.
|
25
|
+
"""
|
26
|
+
pass
|
bayinx/core/model.py
CHANGED
@@ -3,10 +3,10 @@ from typing import Any, Dict, Tuple
|
|
3
3
|
|
4
4
|
import equinox as eqx
|
5
5
|
import jax.numpy as jnp
|
6
|
-
import jax.
|
6
|
+
import jax.tree as jt
|
7
7
|
from jaxtyping import Array, Scalar
|
8
8
|
|
9
|
-
from bayinx.core.
|
9
|
+
from bayinx.core.constraint import Constraint
|
10
10
|
|
11
11
|
|
12
12
|
class Model(eqx.Module):
|
@@ -31,13 +31,13 @@ class Model(eqx.Module):
|
|
31
31
|
Generates a filter specification to subset relevant parameters for the model.
|
32
32
|
"""
|
33
33
|
# Generate empty specification
|
34
|
-
filter_spec =
|
34
|
+
filter_spec = jt.map(lambda _: False, self)
|
35
35
|
|
36
36
|
# Specify JAX Array parameters
|
37
37
|
filter_spec = eqx.tree_at(
|
38
38
|
lambda model: model.params,
|
39
39
|
filter_spec,
|
40
|
-
replace=
|
40
|
+
replace=jt.map(eqx.is_array, self.params),
|
41
41
|
)
|
42
42
|
|
43
43
|
return filter_spec
|
bayinx/core/variational.py
CHANGED
@@ -19,8 +19,8 @@ class Variational(eqx.Module):
|
|
19
19
|
An abstract base class used to define variational methods.
|
20
20
|
|
21
21
|
# Attributes
|
22
|
-
- `_unflatten`: A
|
23
|
-
- `_constraints`:
|
22
|
+
- `_unflatten`: A function to transform draws from the variational distribution back to a `Model`.
|
23
|
+
- `_constraints`: The static component of a partitioned `Model` used to initialize the `Variational` object.
|
24
24
|
"""
|
25
25
|
|
26
26
|
_unflatten: Callable[[Array], Model]
|
@@ -0,0 +1,65 @@
|
|
1
|
+
import jax.lax as lax
|
2
|
+
import jax.numpy as jnp
|
3
|
+
from jax.scipy.special import gammaincc
|
4
|
+
from jaxtyping import Array, ArrayLike, Float
|
5
|
+
|
6
|
+
from bayinx.dists import gamma2
|
7
|
+
|
8
|
+
|
9
|
+
def prob(
|
10
|
+
x: Float[ArrayLike, "..."],
|
11
|
+
mu: Float[ArrayLike, "..."],
|
12
|
+
nu: Float[ArrayLike, "..."],
|
13
|
+
censor: Float[ArrayLike, "..."]
|
14
|
+
) -> Float[Array, "..."]:
|
15
|
+
"""
|
16
|
+
The mixed probability mass/density function (PMF/PDF) for a (mean-inverse dispersion parameterized) Gamma distribution.
|
17
|
+
|
18
|
+
# Parameters
|
19
|
+
- `x`: Value(s) at which to evaluate the PMF/PDF.
|
20
|
+
- `mu`: The positive mean.
|
21
|
+
- `nu`: The positive inverse dispersion.
|
22
|
+
|
23
|
+
# Returns
|
24
|
+
The PMF/PDF evaluated at `x`. The output will have the broadcasted shapes of `x`, `mu`, and `nu`.
|
25
|
+
"""
|
26
|
+
evals: Array = jnp.zeros_like(x * 1.0) # ensure float dtype
|
27
|
+
|
28
|
+
# Construct boolean masks
|
29
|
+
uncensored: Array = jnp.array(jnp.logical_and(0.0 < x, x < censor)) # pyright: ignore
|
30
|
+
censored: Array = jnp.array(x == censor) # pyright: ignore
|
31
|
+
|
32
|
+
# Evaluate mixed probability (?) function
|
33
|
+
evals = jnp.where(uncensored, gamma2.prob(x, mu, nu), evals)
|
34
|
+
evals = jnp.where(censored, gammaincc(nu, x * nu / mu), evals) # pyright: ignore
|
35
|
+
|
36
|
+
return evals
|
37
|
+
|
38
|
+
|
39
|
+
def logprob(
|
40
|
+
x: Float[ArrayLike, "..."],
|
41
|
+
mu: Float[ArrayLike, "..."],
|
42
|
+
nu: Float[ArrayLike, "..."],
|
43
|
+
censor: Float[ArrayLike, "..."]
|
44
|
+
) -> Float[Array, "..."]:
|
45
|
+
"""
|
46
|
+
The log-transformed mixed probability mass/density function (log PMF/PDF) for a (mean-inverse dispersion parameterized) Gamma distribution.
|
47
|
+
|
48
|
+
# Parameters
|
49
|
+
- `x`: Value(s) at which to evaluate the log PMF/PDF.
|
50
|
+
- `mu`: The positive mean/location.
|
51
|
+
- `nu`: The positive inverse dispersion.
|
52
|
+
|
53
|
+
# Returns
|
54
|
+
The log PMF/PDF evaluated at `x`. The output will have the broadcasted shapes of `x`, `mu`, and `nu`.
|
55
|
+
"""
|
56
|
+
evals: Array = jnp.full_like(x * 1.0, -jnp.inf) # ensure float dtype
|
57
|
+
|
58
|
+
# Construct boolean masks
|
59
|
+
uncensored: Array = jnp.array(jnp.logical_and(0.0 < x, x < censor)) # pyright: ignore
|
60
|
+
censored: Array = jnp.array(x == censor) # pyright: ignore
|
61
|
+
|
62
|
+
evals = jnp.where(uncensored, gamma2.logprob(x, mu, nu), evals)
|
63
|
+
evals = jnp.where(censored, lax.log(gammaincc(nu, x * nu / mu)), evals) # pyright: ignore
|
64
|
+
|
65
|
+
return evals
|
bayinx/dists/gamma2.py
CHANGED
@@ -0,0 +1,39 @@
|
|
1
|
+
import jax.lax as lax
|
2
|
+
from jax.scipy.special import gammaln
|
3
|
+
from jaxtyping import Array, ArrayLike, Float
|
4
|
+
|
5
|
+
|
6
|
+
def prob(
|
7
|
+
x: Float[ArrayLike, "..."], mu: Float[ArrayLike, "..."], nu: Float[ArrayLike, "..."]
|
8
|
+
) -> Float[Array, "..."]:
|
9
|
+
"""
|
10
|
+
The probability density function (PDF) for a (mean-precision parameterized) Gamma distribution.
|
11
|
+
|
12
|
+
# Parameters
|
13
|
+
- `x`: Value(s) at which to evaluate the PDF.
|
14
|
+
- `mu`: The positive mean.
|
15
|
+
- `nu`: The positive inverse dispersion.
|
16
|
+
|
17
|
+
# Returns
|
18
|
+
The PDF evaluated at `x`. The output will have the broadcasted shapes of `x`, `mu`, and `nu`.
|
19
|
+
"""
|
20
|
+
|
21
|
+
return lax.exp(logprob(x, mu, nu))
|
22
|
+
|
23
|
+
|
24
|
+
def logprob(
|
25
|
+
x: Float[ArrayLike, "..."], mu: Float[ArrayLike, "..."], nu: Float[ArrayLike, "..."]
|
26
|
+
) -> Float[Array, "..."]:
|
27
|
+
"""
|
28
|
+
The log-transformed probability density function (log PDF) for a (mean-precision parameterized) Gamma distribution.
|
29
|
+
|
30
|
+
# Parameters
|
31
|
+
- `x`: Value(s) at which to evaluate the log PDF.
|
32
|
+
- `mu`: The positive mean/location.
|
33
|
+
- `nu`: The positive inverse dispersion.
|
34
|
+
|
35
|
+
# Returns
|
36
|
+
The log PDF evaluated at `x`. The output will have the broadcasted shapes of `x`, `mu`, and `nu`.
|
37
|
+
"""
|
38
|
+
|
39
|
+
return - gammaln(nu) + nu * (lax.log(nu) - lax.log(mu)) + (nu - 1.0) * lax.log(x) - (x * nu / mu) # pyright: ignore
|
bayinx/dists/normal.py
CHANGED
@@ -1,31 +1,31 @@
|
|
1
|
-
import jax.lax as
|
2
|
-
from jaxtyping import Array, ArrayLike, Float
|
1
|
+
import jax.lax as lax
|
2
|
+
from jaxtyping import Array, ArrayLike, Float
|
3
3
|
|
4
4
|
__PI = 3.141592653589793
|
5
5
|
|
6
6
|
|
7
7
|
def prob(
|
8
|
-
x:
|
8
|
+
x: Float[ArrayLike, "..."], mu: Float[ArrayLike, "..."], sigma: Float[ArrayLike, "..."]
|
9
9
|
) -> Float[Array, "..."]:
|
10
10
|
"""
|
11
11
|
The probability density function (PDF) for a Normal distribution.
|
12
12
|
|
13
13
|
# Parameters
|
14
14
|
- `x`: Value(s) at which to evaluate the PDF.
|
15
|
-
- `mu`: The mean/location
|
16
|
-
- `sigma`: The
|
15
|
+
- `mu`: The mean/location.
|
16
|
+
- `sigma`: The positive standard deviation.
|
17
17
|
|
18
18
|
# Returns
|
19
19
|
The PDF evaluated at `x`. The output will have the broadcasted shapes of `x`, `mu`, and `sigma`.
|
20
20
|
"""
|
21
21
|
|
22
|
-
return
|
23
|
-
sigma *
|
22
|
+
return lax.exp(-0.5 * lax.square((x - mu) / sigma)) / ( # pyright: ignore
|
23
|
+
sigma * lax.sqrt(2.0 * __PI)
|
24
24
|
)
|
25
25
|
|
26
26
|
|
27
27
|
def logprob(
|
28
|
-
x:
|
28
|
+
x: Float[ArrayLike, "..."], mu: Float[ArrayLike, "..."], sigma: Float[ArrayLike, "..."]
|
29
29
|
) -> Float[Array, "..."]:
|
30
30
|
"""
|
31
31
|
The log of the probability density function (log PDF) for a Normal distribution.
|
@@ -36,16 +36,16 @@ def logprob(
|
|
36
36
|
- `sigma`: The non-negative standard deviation parameter(s).
|
37
37
|
|
38
38
|
# Returns
|
39
|
-
The log
|
39
|
+
The log PDF evaluated at `x`. The output will have the broadcasted shapes of `x`, `mu`, and `sigma`.
|
40
40
|
"""
|
41
41
|
|
42
|
-
return -
|
43
|
-
(x - mu) / sigma
|
42
|
+
return -lax.log(sigma * lax.sqrt(2.0 * __PI)) - 0.5 * lax.square(
|
43
|
+
(x - mu) / sigma # pyright: ignore
|
44
44
|
)
|
45
45
|
|
46
46
|
|
47
47
|
def uprob(
|
48
|
-
x:
|
48
|
+
x: Float[ArrayLike, "..."], mu: Float[ArrayLike, "..."], sigma: Float[ArrayLike, "..."]
|
49
49
|
) -> Float[Array, "..."]:
|
50
50
|
"""
|
51
51
|
The unnormalized probability density function (uPDF) for a Normal distribution.
|
@@ -53,17 +53,17 @@ def uprob(
|
|
53
53
|
# Parameters
|
54
54
|
- `x`: Value(s) at which to evaluate the uPDF.
|
55
55
|
- `mu`: The mean/location parameter(s).
|
56
|
-
- `sigma`: The
|
56
|
+
- `sigma`: The positive standard deviation parameter(s).
|
57
57
|
|
58
58
|
# Returns
|
59
59
|
The uPDF evaluated at `x`. The output will have the broadcasted shapes of `x`, `mu`, and `sigma`.
|
60
60
|
"""
|
61
61
|
|
62
|
-
return
|
62
|
+
return lax.exp(-0.5 * lax.square((x - mu) / sigma)) / sigma # pyright: ignore
|
63
63
|
|
64
64
|
|
65
65
|
def ulogprob(
|
66
|
-
x:
|
66
|
+
x: Float[ArrayLike, "..."], mu: Float[ArrayLike, "..."], sigma: Float[ArrayLike, "..."]
|
67
67
|
) -> Float[Array, "..."]:
|
68
68
|
"""
|
69
69
|
The log of the unnormalized probability density function (log uPDF) for a Normal distribution.
|
@@ -77,4 +77,4 @@ def ulogprob(
|
|
77
77
|
The log uPDF evaluated at `x`. The output will have the broadcasted shapes of `x`, `mu`, and `sigma`.
|
78
78
|
"""
|
79
79
|
|
80
|
-
return -
|
80
|
+
return -lax.log(sigma) - 0.5 * lax.square((x - mu) / sigma) # pyright: ignore
|
bayinx/dists/uniform.py
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
import jax.lax as _lax
|
2
2
|
import jax.numpy as jnp
|
3
|
-
from jaxtyping import Array, ArrayLike, Float
|
3
|
+
from jaxtyping import Array, ArrayLike, Float
|
4
4
|
|
5
5
|
|
6
6
|
def prob(
|
7
|
-
x:
|
7
|
+
x: Float[ArrayLike, "..."], lb: Float[ArrayLike, "..."], ub: Float[ArrayLike, "..."]
|
8
8
|
) -> Float[Array, "..."]:
|
9
9
|
"""
|
10
10
|
The probability density function (PDF) for a Uniform distribution.
|
@@ -22,7 +22,7 @@ def prob(
|
|
22
22
|
|
23
23
|
|
24
24
|
def logprob(
|
25
|
-
x:
|
25
|
+
x: Float[ArrayLike, "..."], lb: Float[ArrayLike, "..."], ub: Float[ArrayLike, "..."]
|
26
26
|
) -> Float[Array, "..."]:
|
27
27
|
"""
|
28
28
|
The log of the probability density function (log PDF) for a Uniform distribution.
|
@@ -40,7 +40,7 @@ def logprob(
|
|
40
40
|
|
41
41
|
|
42
42
|
def uprob(
|
43
|
-
x:
|
43
|
+
x: Float[ArrayLike, "..."], lb: Float[ArrayLike, "..."], ub: Float[ArrayLike, "..."]
|
44
44
|
) -> Float[Array, "..."]:
|
45
45
|
"""
|
46
46
|
The unnormalized probability density function (uPDF) for a Uniform distribution.
|
@@ -58,7 +58,7 @@ def uprob(
|
|
58
58
|
|
59
59
|
|
60
60
|
def ulogprob(
|
61
|
-
x:
|
61
|
+
x: Float[ArrayLike, "..."], lb: Float[ArrayLike, "..."], ub: Float[ArrayLike, "..."]
|
62
62
|
) -> Float[Array, "..."]:
|
63
63
|
"""
|
64
64
|
The log of the unnormalized probability density function (log uPDF) for a Uniform distribution.
|
@@ -30,19 +30,19 @@ class FullAffine(Flow):
|
|
30
30
|
"scale": jnp.zeros((dim, dim)),
|
31
31
|
}
|
32
32
|
|
33
|
-
|
33
|
+
if dim == 1:
|
34
|
+
self.constraints = {}
|
35
|
+
else:
|
34
36
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
# Extract diagonal and apply exponential
|
40
|
-
diag: Array = jnp.exp(jnp.diag(params["scale"]))
|
37
|
+
@eqx.filter_jit
|
38
|
+
def constrain_scale(scale: Array):
|
39
|
+
# Extract diagonal and apply exponential
|
40
|
+
diag: Array = jnp.exp(jnp.diag(scale))
|
41
41
|
|
42
|
-
|
43
|
-
|
42
|
+
# Return matrix with modified diagonal
|
43
|
+
return jnp.fill_diagonal(scale, diag, inplace=False)
|
44
44
|
|
45
|
-
|
45
|
+
self.constraints = {"scale": constrain_scale}
|
46
46
|
|
47
47
|
@eqx.filter_jit
|
48
48
|
def forward(self, draws: Array) -> Array:
|
bayinx/mhx/vi/meanfield.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import Any,
|
1
|
+
from typing import Any, Dict, Self
|
2
2
|
|
3
3
|
import equinox as eqx
|
4
4
|
import jax.numpy as jnp
|
@@ -20,8 +20,6 @@ class MeanField(Variational):
|
|
20
20
|
"""
|
21
21
|
|
22
22
|
var_params: Dict[str, Float[Array, "..."]]
|
23
|
-
_unflatten: Callable[[Float[Array, "..."]], Model]
|
24
|
-
_constraints: Model
|
25
23
|
|
26
24
|
def __init__(self, model: Model):
|
27
25
|
"""
|
@@ -0,0 +1,29 @@
|
|
1
|
+
bayinx/__init__.py,sha256=l20JdkSsE_XGZlZFNEtySXf4NIlbjrao14vXPB-H6aQ,45
|
2
|
+
bayinx/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
+
bayinx/constraints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
|
+
bayinx/constraints/lower.py,sha256=O37qJ6ojRKbKGJlnQ7Vv7P2VGARcnKrOifwyUNBHma8,912
|
5
|
+
bayinx/core/__init__.py,sha256=7vW2F8t3K4TWlSu5nZrYCdUrz5N9FMIfQQBn3IoeH6o,150
|
6
|
+
bayinx/core/constraint.py,sha256=T1QP3WV9RU1nPW-9H7loc6DyBzElHVyDp1c4mmZpnmI,733
|
7
|
+
bayinx/core/flow.py,sha256=A5Vw5t76LPasnMgghjw6ulBkIm5L2jBprusVt-tuwko,2296
|
8
|
+
bayinx/core/model.py,sha256=vfEnqBpHE2MtuJPIDgKvVYIv5n53E2e-KAAXEtqEy0c,2126
|
9
|
+
bayinx/core/variational.py,sha256=2stsYKZDri1rLP7mrz7X2GWehBXNESdlWtmF2N9CEas,4787
|
10
|
+
bayinx/dists/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
|
+
bayinx/dists/bernoulli.py,sha256=xMV9BgtVX_1XkPdZ43q0meMIEkgMyuUPx--dyo6_DKs,1006
|
12
|
+
bayinx/dists/gamma2.py,sha256=8XYaOtcYJCrr5q1yHWfZaMJmASpLOrfyhrH_J06ksj8,1333
|
13
|
+
bayinx/dists/normal.py,sha256=mvm6EoAlORy-yivuhMcExYCZUo0vJzMKMOWH-9iQBZU,2634
|
14
|
+
bayinx/dists/uniform.py,sha256=7XgVvOrzINEFA6HJTYUOFwlWhEtrQQQ1aPJ_ZLOzLEc,2365
|
15
|
+
bayinx/dists/censored/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
16
|
+
bayinx/dists/censored/gamma2/r.py,sha256=3brRCKhE-74mRXyIyPcnyaWY2OJv8CZyUWPP9T1t09Y,2274
|
17
|
+
bayinx/mhx/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
18
|
+
bayinx/mhx/vi/__init__.py,sha256=YfkXKsqo9Dk_AmQGjZKm4vfG8eLer2ez92G-cOExphs,193
|
19
|
+
bayinx/mhx/vi/meanfield.py,sha256=BobfTagVGA5R-dclv-E0jSA80KZg1X6GGjiw7XR61vE,3643
|
20
|
+
bayinx/mhx/vi/normalizing_flow.py,sha256=FvxDtqGRtaEeeF-bXCYnIEAvOOXVHKUK0oCTF9ma02Y,4622
|
21
|
+
bayinx/mhx/vi/standard.py,sha256=HaJsIz70Qo1Ql2hMQ-GQhcnfWiOGtyxgkOsm_yQaDKI,1718
|
22
|
+
bayinx/mhx/vi/flows/__init__.py,sha256=Hn0Wqvvyv8Vr-mFmimwgNKCByxj-fjrlIvdR7tUSolg,180
|
23
|
+
bayinx/mhx/vi/flows/fullaffine.py,sha256=s-fxgzv84BEqNMnmLt6vtvwJqBzixCC2OwWXLz3IK-w,1940
|
24
|
+
bayinx/mhx/vi/flows/planar.py,sha256=WVj-oxcRctuoRA6KJjU63ek1ZgKNG2vI-TLN0QqjtKA,1916
|
25
|
+
bayinx/mhx/vi/flows/radial.py,sha256=Obj3SraliawIHmP14F9wRpWt34y3kscY--Izy24eCvM,2499
|
26
|
+
bayinx/mhx/vi/flows/sylvester.py,sha256=ppK0BmS_ThvrCEhJiP_-p-kj67TQHSlU_RUZpDbIhsQ,469
|
27
|
+
bayinx-0.2.30.dist-info/METADATA,sha256=VVDldLMllMzTkx_tphb6k2n4u-PSwBbmFOGN-PG1BWc,3058
|
28
|
+
bayinx-0.2.30.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
29
|
+
bayinx-0.2.30.dist-info/RECORD,,
|
bayinx-0.2.28.dist-info/RECORD
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
bayinx/__init__.py,sha256=l20JdkSsE_XGZlZFNEtySXf4NIlbjrao14vXPB-H6aQ,45
|
2
|
-
bayinx/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
-
bayinx/core/__init__.py,sha256=7vW2F8t3K4TWlSu5nZrYCdUrz5N9FMIfQQBn3IoeH6o,150
|
4
|
-
bayinx/core/constraints.py,sha256=lbVs2-xjGRue17YRPGHz3s_mJ0ZiunpYowbD0QvcD-I,1525
|
5
|
-
bayinx/core/flow.py,sha256=A5Vw5t76LPasnMgghjw6ulBkIm5L2jBprusVt-tuwko,2296
|
6
|
-
bayinx/core/model.py,sha256=Z_HaFr0_-keMjG5tg3xxP3hGML7aDFIcCI8Y5dGrtM4,2145
|
7
|
-
bayinx/core/variational.py,sha256=W0747jfVJFAtMZqL3mpbtl2wfnARHln-dVBag4xZ23Y,4813
|
8
|
-
bayinx/dists/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
|
-
bayinx/dists/bernoulli.py,sha256=xMV9BgtVX_1XkPdZ43q0meMIEkgMyuUPx--dyo6_DKs,1006
|
10
|
-
bayinx/dists/binomial.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
|
-
bayinx/dists/gamma.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
|
-
bayinx/dists/gamma2.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
13
|
-
bayinx/dists/normal.py,sha256=3CXSgHWnuglmP8cKVUh2Yt4Rb9_LR_mwPRXDm_LuSRo,2679
|
14
|
-
bayinx/dists/uniform.py,sha256=mogFe8VuDelM9KXE6RxGek0-tuZYFrwmo_oMOPHXleA,2359
|
15
|
-
bayinx/mhx/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
16
|
-
bayinx/mhx/vi/__init__.py,sha256=YfkXKsqo9Dk_AmQGjZKm4vfG8eLer2ez92G-cOExphs,193
|
17
|
-
bayinx/mhx/vi/meanfield.py,sha256=8hM1KZ52TpRPLwiQcowsJLlQ-5nJzUEcKrtDiGrFoSs,3732
|
18
|
-
bayinx/mhx/vi/normalizing_flow.py,sha256=FvxDtqGRtaEeeF-bXCYnIEAvOOXVHKUK0oCTF9ma02Y,4622
|
19
|
-
bayinx/mhx/vi/standard.py,sha256=HaJsIz70Qo1Ql2hMQ-GQhcnfWiOGtyxgkOsm_yQaDKI,1718
|
20
|
-
bayinx/mhx/vi/flows/__init__.py,sha256=Hn0Wqvvyv8Vr-mFmimwgNKCByxj-fjrlIvdR7tUSolg,180
|
21
|
-
bayinx/mhx/vi/flows/fullaffine.py,sha256=Kvaa8epqaqz9tdMCnf9T_-2P3Bh_TkhA6NrilKHY93A,1886
|
22
|
-
bayinx/mhx/vi/flows/planar.py,sha256=WVj-oxcRctuoRA6KJjU63ek1ZgKNG2vI-TLN0QqjtKA,1916
|
23
|
-
bayinx/mhx/vi/flows/radial.py,sha256=Obj3SraliawIHmP14F9wRpWt34y3kscY--Izy24eCvM,2499
|
24
|
-
bayinx/mhx/vi/flows/sylvester.py,sha256=ppK0BmS_ThvrCEhJiP_-p-kj67TQHSlU_RUZpDbIhsQ,469
|
25
|
-
bayinx-0.2.28.dist-info/METADATA,sha256=xe3Wlo3UlD3VuTc42ChwnPTL6lp3BZmxnuf0gnZxWv0,3058
|
26
|
-
bayinx-0.2.28.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
27
|
-
bayinx-0.2.28.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|