Skip to content

Commit c4a081e

Browse files
committed
Get rid of uses of intX besides convert_observed_data
1 parent f8a1225 commit c4a081e

File tree

5 files changed

+15
-16
lines changed

5 files changed

+15
-16
lines changed

pymc/distributions/multivariate.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
from pymc.distributions.transforms import Interval, ZeroSumTransform, _default_transform
7373
from pymc.logprob.abstract import _logprob
7474
from pymc.math import kron_diag, kron_dot
75-
from pymc.pytensorf import intX, normalize_rng_param
75+
from pymc.pytensorf import normalize_rng_param
7676
from pymc.util import check_dist_not_registered
7777

7878
__all__ = [
@@ -929,7 +929,7 @@ class Wishart(Continuous):
929929

930930
@classmethod
931931
def dist(cls, nu, V, *args, **kwargs):
932-
nu = pt.as_tensor_variable(intX(nu))
932+
nu = pt.as_tensor_variable(nu, dtype=int)
933933
V = pt.as_tensor_variable(V)
934934

935935
warnings.warn(
@@ -2454,7 +2454,7 @@ class StickBreakingWeightsRV(RandomVariable):
24542454

24552455
def make_node(self, rng, size, dtype, alpha, K):
24562456
alpha = pt.as_tensor_variable(alpha)
2457-
K = pt.as_tensor_variable(intX(K))
2457+
K = pt.as_tensor_variable(K, dtype=int)
24582458

24592459
if K.ndim > 0:
24602460
raise ValueError("K must be a scalar.")

pymc/distributions/timeseries.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
from pymc.exceptions import NotConstantValueError
4646
from pymc.logprob.abstract import _logprob
4747
from pymc.logprob.basic import logp
48-
from pymc.pytensorf import constant_fold, intX
48+
from pymc.pytensorf import constant_fold
4949
from pymc.util import check_dist_not_registered
5050

5151
__all__ = [
@@ -174,7 +174,7 @@ def dist(cls, init_dist, innovation_dist, steps=None, **kwargs) -> pt.TensorVari
174174
)
175175
if steps is None:
176176
raise ValueError("Must specify steps or shape parameter")
177-
steps = pt.as_tensor_variable(intX(steps))
177+
steps = pt.as_tensor_variable(steps, dtype=int)
178178

179179
return super().dist([init_dist, innovation_dist, steps], **kwargs)
180180

@@ -599,7 +599,7 @@ def dist(
599599
)
600600
if steps is None:
601601
raise ValueError("Must specify steps or shape parameter")
602-
steps = pt.as_tensor_variable(intX(steps), ndim=0)
602+
steps = pt.as_tensor_variable(steps, dtype=int, ndim=0)
603603

604604
if init_dist is not None:
605605
if not isinstance(init_dist, TensorVariable) or not isinstance(
@@ -961,7 +961,7 @@ def dist(cls, dt, sde_fn, sde_pars, *, init_dist=None, steps=None, **kwargs):
961961
)
962962
if steps is None:
963963
raise ValueError("Must specify steps or shape parameter")
964-
steps = pt.as_tensor_variable(intX(steps), ndim=0)
964+
steps = pt.as_tensor_variable(steps, dtype=int, ndim=0)
965965

966966
dt = pt.as_tensor_variable(dt)
967967
sde_pars = [pt.as_tensor_variable(x) for x in sde_pars]

pymc/testing.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
local_check_parameter_to_ninf_switch,
4545
rvs_in_graph,
4646
)
47-
from pymc.pytensorf import compile_pymc, floatX, inputvars, intX
47+
from pymc.pytensorf import compile_pymc, floatX, inputvars
4848

4949
# This mode can be used for tests where model compilations takes the bulk of the runtime
5050
# AND where we don't care about posterior numerical or sampling stability (e.g., when
@@ -771,7 +771,7 @@ def discrete_random_tester(
771771
f = fails
772772
while p <= alpha and f > 0:
773773
o = pymc_rand()
774-
e = intX(ref_rand(size=size, **point))
774+
e = ref_rand(size=size, **point).astype(int)
775775
o = np.atleast_1d(o).flatten()
776776
e = np.atleast_1d(e).flatten()
777777
bins = min(20, max(len(set(e)), len(set(o))))

tests/distributions/test_multivariate.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
from pymc.logprob.basic import logp
4444
from pymc.logprob.utils import ParameterValueError
4545
from pymc.math import kronecker
46-
from pymc.pytensorf import compile_pymc, floatX, intX
46+
from pymc.pytensorf import compile_pymc, floatX
4747
from pymc.sampling.forward import draw
4848
from pymc.testing import (
4949
BaseTestDistributionRandom,
@@ -674,8 +674,8 @@ def test_multinomial_p_not_normalized_symbolic(self):
674674
)
675675
@pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)])
676676
def test_multinomial_vectorized(self, n, p, extra_size):
677-
n = intX(np.array(n))
678-
p = floatX(np.array(p))
677+
n = np.array(n)
678+
p = np.array(p)
679679
p /= p.sum(axis=-1, keepdims=True)
680680

681681
_, bcast_p = broadcast_params([n, p], ndims_params=[0, 1])
@@ -757,8 +757,8 @@ def test_dirichlet_multinomial_matches_beta_binomial(self):
757757
)
758758
@pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)])
759759
def test_dirichlet_multinomial_vectorized(self, n, a, extra_size):
760-
n = intX(np.array(n))
761-
a = floatX(np.array(a))
760+
n = np.array(n)
761+
a = np.array(a)
762762

763763
_, bcast_a = broadcast_params([n, a], ndims_params=[0, 1])
764764
size = extra_size + bcast_a.shape[:-1]

tests/variational/test_inference.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import pymc as pm
2828
import pymc.variational.opvi as opvi
2929

30-
from pymc.pytensorf import intX
3130
from pymc.variational.inference import ADVI, ASVGD, SVGD, FullRankADVI
3231
from pymc.variational.opvi import NotImplementedInference
3332
from tests import models
@@ -278,7 +277,7 @@ def test_profile(inference):
278277
@pytest.fixture(scope="module")
279278
def binomial_model():
280279
n_samples = 100
281-
xs = intX(np.random.binomial(n=1, p=0.2, size=n_samples))
280+
xs = np.random.binomial(n=1, p=0.2, size=n_samples)
282281
with pm.Model() as model:
283282
p = pm.Beta("p", alpha=1, beta=1)
284283
pm.Binomial("xs", n=1, p=p, observed=xs)

0 commit comments

Comments
 (0)