pymc on  main via 🐍 v3.10.5 via 🅒 pymc-dev ❯ pytest --disable-warnings ================================================ test session starts ================================================= platform linux -- Python 3.10.5, pytest-7.1.2, pluggy-1.0.0 rootdir: /home/virgile/src/pymc, configfile: pyproject.toml plugins: cov-3.0.0 collected 3562 items pymc/tests/test_aesaraf.py ............................. [ 0%] pymc/tests/test_data_container.py ..........x.......... [ 1%] pymc/tests/test_dist_math.py ......................... [ 2%] pymc/tests/test_distributions.py ............................................................................. [ 4%] ....................................FFF.....FFFFFFFFFFFFFFFFFFFFFFFFFFF....................................... [ 7%] .............................................................................................................. [ 10%] .. [ 10%] pymc/tests/test_distributions_moments.py ..................................................................... [ 12%] .............................................................................................................. [ 15%] ...............................................................F.FF................................... [ 18%] pymc/tests/test_distributions_random.py ...................................................................... [ 20%] ..............................................................................xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [ 23%] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [ 26%] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.. [ 29%] pymc/tests/test_distributions_timeseries.py .................................................................. [ 31%] ....xx [ 31%] pymc/tests/test_func_utils.py ............................... [ 32%] pymc/tests/test_gp.py ........................................................................................ [ 34%] .......... [ 34%] pymc/tests/test_hmc.py .. [ 35%] pymc/tests/test_idata_conversion.py ..........x............F................ [ 36%] pymc/tests/test_initial_point.py ..................... [ 36%] pymc/tests/test_logprob.py ................ [ 37%] pymc/tests/test_math.py ................ [ 37%] pymc/tests/test_minibatches.py ....................... [ 38%] pymc/tests/test_missing.py .......... [ 38%] pymc/tests/test_mixture.py ................................................................................... [ 40%] ........x................FF.................................... [ 42%] pymc/tests/test_model.py ...................x............................................. [ 44%] pymc/tests/test_model_graph.py ......................... [ 45%] pymc/tests/test_modelcontext.py .. [ 45%] pymc/tests/test_ndarray_backend.py ........................................................................... [ 47%] ................................................................................................. [ 50%] pymc/tests/test_ode.py ......................... [ 50%] pymc/tests/test_parallel_sampling.py ...ss..... [ 51%] pymc/tests/test_pickling.py . [ 51%] pymc/tests/test_posdef_sym.py .... [ 51%] pymc/tests/test_posteriors.py ......F....................................ssssss.... [ 52%] pymc/tests/test_printing.py .. [ 52%] pymc/tests/test_profile.py ... [ 52%] pymc/tests/test_quadpotential.py ............... [ 53%] pymc/tests/test_sampling.py .................................................................................. [ 55%] .............xx........sssss........................F......... [ 57%] pymc/tests/test_sampling_jax.py F.F.F.F.F.....F.F.F.F.F.F.F.F.F.F..F.F.F.F....... [ 58%] pymc/tests/test_shape_handling.py ............................................................................ [ 60%] .............................................................................................................. [ 63%] .............................................................................................................. [ 66%] .............................................................................................................. [ 70%] .............................................................................................................. [ 73%] .............................................................................................................. [ 76%] .............................................................................................................. [ 79%] .............................................................................................................. [ 82%] .............................................................................................................. [ 85%] ............................................ [ 86%] pymc/tests/test_shared.py .. [ 86%] pymc/tests/test_smc.py .......................x.... [ 87%] pymc/tests/test_starting.py ........ [ 87%] pymc/tests/test_step.py ............................................................. [ 89%] pymc/tests/test_transforms.py ...............x....................................... [ 91%] pymc/tests/test_tuning.py ..... [ 91%] pymc/tests/test_types.py .. [ 91%] pymc/tests/test_updates.py ................................................................................... [ 93%] .............................................................................................................. [ 96%] ....................... [ 97%] pymc/tests/test_util.py ......... [ 97%] pymc/tests/test_variational_inference.py ....................s................................................ [ 99%] ................. [100%] ====================================================== FAILURES ====================================================== ________________________________________ TestMatchesScipy.test_multinomial[2] ________________________________________ self = , n = 2 @pytest.mark.parametrize("n", [2, 3]) def test_multinomial(self, n): > check_logp( Multinomial, Vector(Nat, n), {"p": Simplex(n), "n": Nat}, lambda value, n, p: scipy.stats.multinomial.logpmf(value, n, p), ) pymc/tests/test_distributions.py:2137: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc_dist = domain = paramdomains = {'n': , 'p': } scipy_logp = . at 0x7f8f50581f30>, decimal = 6 n_samples = 100, extra_args = {}, scipy_args = {}, skip_paramdomain_outside_edge_test = False def check_logp( pymc_dist, domain, paramdomains, scipy_logp, decimal=None, n_samples=100, extra_args=None, scipy_args=None, skip_paramdomain_outside_edge_test=False, ): """ Generic test for PyMC logp methods Test PyMC logp and equivalent scipy logpmf/logpdf methods give similar results for valid values and parameters inside the supported edges. Edges are excluded by default, but can be artificially included by creating a domain with repeated values (e.g., `Domain([0, 0, .5, 1, 1]`) Parameters ---------- pymc_dist: PyMC distribution domain : Domain Supported domain of distribution values paramdomains : Dictionary of Parameter : Domain pairs Supported domains of distribution parameters scipy_logp : Scipy logpmf/logpdf method Scipy logp method of equivalent pymc_dist distribution decimal : Int Level of precision with which pymc_dist and scipy logp are compared. Defaults to 6 for float64 and 3 for float32 n_samples : Int Upper limit on the number of valid domain and value combinations that are compared between pymc and scipy methods. If n_samples is below the total number of combinations, a random subset is evaluated. Setting n_samples = -1, will return all possible combinations. Defaults to 100 extra_args : Dictionary with extra arguments needed to build pymc model Dictionary is passed to helper function `build_model` from which the pymc distribution logp is calculated scipy_args : Dictionary with extra arguments needed to call scipy logp method Usually the same as extra_args """ if decimal is None: decimal = select_by_precision(float64=6, float32=3) if extra_args is None: extra_args = {} if scipy_args is None: scipy_args = {} def logp_reference(args): args.update(scipy_args) return scipy_logp(**args) def _model_input_dict(model, param_vars, pt): """Create a dict with only the necessary, transformed logp inputs.""" pt_d = {} for k, v in pt.items(): rv_var = model.named_vars.get(k) nv = param_vars.get(k, rv_var) nv = getattr(nv.tag, "value_var", nv) transform = getattr(nv.tag, "transform", None) if transform: # todo: the compiled graph behind this should be cached and # reused (if it isn't already). v = transform.forward(rv_var, v).eval() if nv.name in param_vars: # update the shared parameter variables in `param_vars` param_vars[nv.name].set_value(v) else: # create an argument entry for the (potentially # transformed) "value" variable pt_d[nv.name] = v return pt_d model, param_vars = build_model(pymc_dist, domain, paramdomains, extra_args) logp_pymc = model.compile_logp(jacobian=False) # Test supported value and parameters domain matches scipy domains = paramdomains.copy() domains["value"] = domain for pt in product(domains, n_samples=n_samples): pt = dict(pt) pt_d = _model_input_dict(model, param_vars, pt) pt_logp = Point(pt_d, model=model) pt_ref = Point(pt, filter_model_vars=False, model=model) > assert_almost_equal( logp_pymc(pt_logp), logp_reference(pt_ref), decimal=decimal, err_msg=str(pt), ) E AssertionError: E Arrays are not almost equal to 6 decimals E {'p': array([0.5, 0.5]), 'n': array(1), 'value': (array(3), array(2))} E x and y -inf location mismatch: E x: array(-5.950643) E y: array(-inf) pymc/tests/test_distributions.py:382: AssertionError ________________________________________ TestMatchesScipy.test_multinomial[3] ________________________________________ self = , n = 3 @pytest.mark.parametrize("n", [2, 3]) def test_multinomial(self, n): > check_logp( Multinomial, Vector(Nat, n), {"p": Simplex(n), "n": Nat}, lambda value, n, p: scipy.stats.multinomial.logpmf(value, n, p), ) pymc/tests/test_distributions.py:2137: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc_dist = domain = paramdomains = {'n': , 'p': } scipy_logp = . at 0x7f8f28300e50>, decimal = 6 n_samples = 100, extra_args = {}, scipy_args = {}, skip_paramdomain_outside_edge_test = False def check_logp( pymc_dist, domain, paramdomains, scipy_logp, decimal=None, n_samples=100, extra_args=None, scipy_args=None, skip_paramdomain_outside_edge_test=False, ): """ Generic test for PyMC logp methods Test PyMC logp and equivalent scipy logpmf/logpdf methods give similar results for valid values and parameters inside the supported edges. Edges are excluded by default, but can be artificially included by creating a domain with repeated values (e.g., `Domain([0, 0, .5, 1, 1]`) Parameters ---------- pymc_dist: PyMC distribution domain : Domain Supported domain of distribution values paramdomains : Dictionary of Parameter : Domain pairs Supported domains of distribution parameters scipy_logp : Scipy logpmf/logpdf method Scipy logp method of equivalent pymc_dist distribution decimal : Int Level of precision with which pymc_dist and scipy logp are compared. Defaults to 6 for float64 and 3 for float32 n_samples : Int Upper limit on the number of valid domain and value combinations that are compared between pymc and scipy methods. If n_samples is below the total number of combinations, a random subset is evaluated. Setting n_samples = -1, will return all possible combinations. Defaults to 100 extra_args : Dictionary with extra arguments needed to build pymc model Dictionary is passed to helper function `build_model` from which the pymc distribution logp is calculated scipy_args : Dictionary with extra arguments needed to call scipy logp method Usually the same as extra_args """ if decimal is None: decimal = select_by_precision(float64=6, float32=3) if extra_args is None: extra_args = {} if scipy_args is None: scipy_args = {} def logp_reference(args): args.update(scipy_args) return scipy_logp(**args) def _model_input_dict(model, param_vars, pt): """Create a dict with only the necessary, transformed logp inputs.""" pt_d = {} for k, v in pt.items(): rv_var = model.named_vars.get(k) nv = param_vars.get(k, rv_var) nv = getattr(nv.tag, "value_var", nv) transform = getattr(nv.tag, "transform", None) if transform: # todo: the compiled graph behind this should be cached and # reused (if it isn't already). v = transform.forward(rv_var, v).eval() if nv.name in param_vars: # update the shared parameter variables in `param_vars` param_vars[nv.name].set_value(v) else: # create an argument entry for the (potentially # transformed) "value" variable pt_d[nv.name] = v return pt_d model, param_vars = build_model(pymc_dist, domain, paramdomains, extra_args) logp_pymc = model.compile_logp(jacobian=False) # Test supported value and parameters domain matches scipy domains = paramdomains.copy() domains["value"] = domain for pt in product(domains, n_samples=n_samples): pt = dict(pt) pt_d = _model_input_dict(model, param_vars, pt) pt_logp = Point(pt_d, model=model) pt_ref = Point(pt, filter_model_vars=False, model=model) > assert_almost_equal( logp_pymc(pt_logp), logp_reference(pt_ref), decimal=decimal, err_msg=str(pt), ) E AssertionError: E Arrays are not almost equal to 6 decimals E {'p': array([0.5 , 0.375, 0.125]), 'n': array(3), 'value': (array(2), array(3), array(1))} E x and y -inf location mismatch: E x: array(-7.101371) E y: array(-inf) pymc/tests/test_distributions.py:382: AssertionError __________________________________ TestMatchesScipy.test_multinomial_invalid_value ___________________________________ self = def test_multinomial_invalid_value(self): # Test passing non-scalar invalid parameters/values to an otherwise valid Multinomial, # evaluates to -inf value = np.array([[1, 2, 2], [3, -1, 0]]) valid_dist = Multinomial.dist(n=5, p=np.ones(3) / 3) > assert np.all(np.isfinite(pm.logp(valid_dist, value).eval()) == np.array([True, False])) pymc/tests/test_distributions.py:2149: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{-inf}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size0-p0-n1] ___________________________ self = , n = array([10, 11], dtype=int32) p = array([0.2, 0.3, 0.5]), extra_size = (1,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() > assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) E AssertionError: E Arrays are not almost equal to 4 decimals E vals=[[[4 2 4] E [1 6 4]]] E (shapes (1, 2), (2,) mismatch) E x: array([[-3.5631, -3.8609]]) E y: array([-24.9263, -22.5284]) pymc/tests/test_distributions.py:2203: AssertionError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size0-p0-n2] ___________________________ self = n = array([[ 5, 6], [10, 11]], dtype=int32), p = array([0.2, 0.3, 0.5]), extra_size = (1,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() > assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) E AssertionError: E Arrays are not almost equal to 4 decimals E vals=[[[[0 2 3] E [0 2 4]] E E [[1 4 5] E [4 4 3]]]] E (shapes (1, 2, 2), (2, 2) mismatch) E x: array([[[-2.1848, -2.4725], E [-2.7522, -3.9786]]]) E y: array([[-50.5741, -48.7823], E [-40.2572, -37.8593]]) pymc/tests/test_distributions.py:2203: AssertionError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size0-p1-10] ___________________________ self = , n = array(10, dtype=int32) p = array([[0.2 , 0.3 , 0.5 ], [0.9 , 0.09, 0.01]]), extra_size = (1,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{-19.615785462804325}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size0-p1-n1] ___________________________ self = , n = array([10, 11], dtype=int32) p = array([[0.2 , 0.3 , 0.5 ], [0.9 , 0.09, 0.01]]), extra_size = (1,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{[-23.55412...1562305 ]}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size0-p1-n2] ___________________________ self = n = array([[ 5, 6], [10, 11]], dtype=int32), p = array([[0.2 , 0.3 , 0.5 ], [0.9 , 0.09, 0.01]]) extra_size = (1,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{[[-49.3232..60844994]]}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size0-p2-10] ___________________________ self = , n = array(10, dtype=int32) p = array([[[0.11133974, 0.49932236, 0.23113532, 0.15820258], [0.43570351, 0.26240498, 0.20801111, 0.09388039]], [[0.3964466 , 0.34654416, 0.12337688, 0.13363235], [0.14703699, 0.19024996, 0.07783779, 0.58487526]]]) extra_size = (1,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{-62.44846065336472}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size0-p2-n1] ___________________________ self = , n = array([10, 11], dtype=int32) p = array([[[0.11133974, 0.49932236, 0.23113532, 0.15820258], [0.43570351, 0.26240498, 0.20801111, 0.09388039]], [[0.3964466 , 0.34654416, 0.12337688, 0.13363235], [0.14703699, 0.19024996, 0.07783779, 0.58487526]]]) extra_size = (1,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{[-68.95637...55848307]}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size0-p2-n2] ___________________________ self = n = array([[ 5, 6], [10, 11]], dtype=int32) p = array([[[0.11133974, 0.49932236, 0.23113532, 0.15820258], [0.43570351, 0.26240498, 0.20801111, 0.09388039]], [[0.3964466 , 0.34654416, 0.12337688, 0.13363235], [0.14703699, 0.19024996, 0.07783779, 0.58487526]]]) extra_size = (1,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{[[-53.4759..76113294]]}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size1-p0-10] ___________________________ self = , n = array(10, dtype=int32) p = array([0.2, 0.3, 0.5]), extra_size = (2,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() > assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) E AssertionError: E Arrays are not almost equal to 4 decimals E vals=[[2 0 8] E [1 4 5]] E Mismatched elements: 2 / 2 (100%) E Max absolute difference: 20.06180335 E Max relative difference: 0.87936364 E x: array([-4.9574, -2.7522]) E y: array(-22.814) pymc/tests/test_distributions.py:2203: AssertionError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size1-p0-n1] ___________________________ self = , n = array([10, 11], dtype=int32) p = array([0.2, 0.3, 0.5]), extra_size = (2,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() > assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) E AssertionError: E Arrays are not almost equal to 4 decimals E vals=[[[3 3 4] E [3 3 5]] E E [[3 1 6] E [1 4 6]]] E (shapes (2, 2), (2,) mismatch) E x: array([[-2.87 , -2.7747], E [-3.4578, -2.8392]]) E y: array([-62.0507, -59.6528]) pymc/tests/test_distributions.py:2203: AssertionError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size1-p0-n2] ___________________________ self = n = array([[ 5, 6], [10, 11]], dtype=int32), p = array([0.2, 0.3, 0.5]), extra_size = (2,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() > assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) E AssertionError: E Arrays are not almost equal to 4 decimals E vals=[[[[0 2 3] E [0 3 3]] E E [[3 2 5] E [2 5 4]]] E E E [[[1 4 0] E [2 3 1]] E E [[1 3 6] E [1 4 6]]]] E (shapes (2, 2, 2), (2, 2) mismatch) E x: array([[[-2.1848, -2.6956], E [-2.87 , -3.1677]], E ... E y: array([[-107.8091, -106.0173], E [ -97.4922, -95.0943]]) pymc/tests/test_distributions.py:2203: AssertionError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size1-p1-10] ___________________________ self = , n = array(10, dtype=int32) p = array([[0.2 , 0.3 , 0.5 ], [0.9 , 0.09, 0.01]]), extra_size = (2,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{-55.130036844552556}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size1-p1-n1] ___________________________ self = , n = array([10, 11], dtype=int32) p = array([[0.2 , 0.3 , 0.5 ], [0.9 , 0.09, 0.01]]), extra_size = (2,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{[-59.52244...12454918]}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size1-p1-n2] ___________________________ self = n = array([[ 5, 6], [10, 11]], dtype=int32), p = array([[0.2 , 0.3 , 0.5 ], [0.9 , 0.09, 0.01]]) extra_size = (2,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{[[-100.133..41861336]]}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size1-p2-10] ___________________________ self = , n = array(10, dtype=int32) p = array([[[0.11133974, 0.49932236, 0.23113532, 0.15820258], [0.43570351, 0.26240498, 0.20801111, 0.09388039]], [[0.3964466 , 0.34654416, 0.12337688, 0.13363235], [0.14703699, 0.19024996, 0.07783779, 0.58487526]]]) extra_size = (2,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{-143.1834636113306}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size1-p2-n1] ___________________________ self = , n = array([10, 11], dtype=int32) p = array([[[0.11133974, 0.49932236, 0.23113532, 0.15820258], [0.43570351, 0.26240498, 0.20801111, 0.09388039]], [[0.3964466 , 0.34654416, 0.12337688, 0.13363235], [0.14703699, 0.19024996, 0.07783779, 0.58487526]]]) extra_size = (2,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{[-147.7974...39954122]}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size1-p2-n2] ___________________________ self = n = array([[ 5, 6], [10, 11]], dtype=int32) p = array([[[0.11133974, 0.49932236, 0.23113532, 0.15820258], [0.43570351, 0.26240498, 0.20801111, 0.09388039]], [[0.3964466 , 0.34654416, 0.12337688, 0.13363235], [0.14703699, 0.19024996, 0.07783779, 0.58487526]]]) extra_size = (2,) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{[[-112.140..4255028 ]]}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size2-p0-10] ___________________________ self = , n = array(10, dtype=int32) p = array([0.2, 0.3, 0.5]), extra_size = (2, 3) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() > assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) E AssertionError: E Arrays are not almost equal to 4 decimals E vals=[[[0 2 8] E [2 5 3] E [2 1 7]] E E [[4 2 4] E [0 3 7] E [0 5 5]]] E Mismatched elements: 6 / 6 (100%) E Max absolute difference: 94.35044666 E Max relative difference: 0.9653284 E x: array([[-4.1465, -3.4862, -3.3888], E [-3.5631, -3.6765, -3.9562]]) E y: array(-97.7392) pymc/tests/test_distributions.py:2203: AssertionError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size2-p0-n1] ___________________________ self = , n = array([10, 11], dtype=int32) p = array([0.2, 0.3, 0.5]), extra_size = (2, 3) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() > assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) E AssertionError: E Arrays are not almost equal to 4 decimals E vals=[[[[1 8 1] E [5 3 3]] E E [[2 2 6] E [2 4 5]] E E [[1 2 7] E [2 2 7]]] E E E [[[2 4 4] E [1 3 7]] E E [[2 0 8] E [2 3 6]] E E [[1 4 5] E [3 3 5]]]] E (shapes (2, 3, 2), (2,) mismatch) E x: array([[[-7.4346, -4.6073], E [-2.6468, -2.6569], E [-2.9833, -2.888 ]],... E y: array([-222.4287, -220.0308]) pymc/tests/test_distributions.py:2203: AssertionError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size2-p0-n2] ___________________________ self = n = array([[ 5, 6], [10, 11]], dtype=int32), p = array([0.2, 0.3, 0.5]), extra_size = (2, 3) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() > assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) E AssertionError: E Arrays are not almost equal to 4 decimals E vals=[[[[[3 1 1] E [1 2 3]] E E [[2 2 6] E [2 4 5]]] E E E [[[2 1 2] E [2 1 3]] E E [[6 2 2] E [3 0 8]]] E E E [[[1 2 2] E [0 2 4]] E E [[2 4 4] E [2 4 5]]]] E E E E [[[[1 2 2] E [0 2 4]] E E [[0 4 6] E [4 1 6]]] E E E [[[2 1 2] E [2 0 4]] E E [[5 1 4] E [1 4 6]]] E E E [[[0 0 5] E [2 2 2]] E E [[0 2 8] E [1 4 6]]]]] E (shapes (2, 3, 2, 2), (2, 2) mismatch) E x: array([[[[-3.7297, -2.0025], E [-2.6468, -2.6569]], E ... E y: array([[-334.9071, -333.1153], E [-324.5902, -322.1923]]) pymc/tests/test_distributions.py:2203: AssertionError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size2-p1-10] ___________________________ self = , n = array(10, dtype=int32) p = array([[0.2 , 0.3 , 0.5 ], [0.9 , 0.09, 0.01]]), extra_size = (2, 3) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{-195.51068063205383}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size2-p1-n1] ___________________________ self = , n = array([10, 11], dtype=int32) p = array([[0.2 , 0.3 , 0.5 ], [0.9 , 0.09, 0.01]]), extra_size = (2, 3) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{[-209.4352...0373129 ]}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size2-p1-n2] ___________________________ self = n = array([[ 5, 6], [10, 11]], dtype=int32), p = array([[0.2 , 0.3 , 0.5 ], [0.9 , 0.09, 0.01]]) extra_size = (2, 3) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{[[-307.622..90784997]]}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size2-p2-10] ___________________________ self = , n = array(10, dtype=int32) p = array([[[0.11133974, 0.49932236, 0.23113532, 0.15820258], [0.43570351, 0.26240498, 0.20801111, 0.09388039]], [[0.3964466 , 0.34654416, 0.12337688, 0.13363235], [0.14703699, 0.19024996, 0.07783779, 0.58487526]]]) extra_size = (2, 3) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{-447.16887237288165}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size2-p2-n1] ___________________________ self = , n = array([10, 11], dtype=int32) p = array([[[0.11133974, 0.49932236, 0.23113532, 0.15820258], [0.43570351, 0.26240498, 0.20801111, 0.09388039]], [[0.3964466 , 0.34654416, 0.12337688, 0.13363235], [0.14703699, 0.19024996, 0.07783779, 0.58487526]]]) extra_size = (2, 3) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{[-488.6722...27437726]}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError __________________________ TestMatchesScipy.test_multinomial_vectorized[extra_size2-p2-n2] ___________________________ self = n = array([[ 5, 6], [10, 11]], dtype=int32) p = array([[[0.11133974, 0.49932236, 0.23113532, 0.15820258], [0.43570351, 0.26240498, 0.20801111, 0.09388039]], [[0.3964466 , 0.34654416, 0.12337688, 0.13363235], [0.14703699, 0.19024996, 0.07783779, 0.58487526]]]) extra_size = (2, 3) @pytest.mark.parametrize("n", [(10), ([10, 11]), ([[5, 6], [10, 11]])]) @pytest.mark.parametrize( "p", [ ([0.2, 0.3, 0.5]), ([[0.2, 0.3, 0.5], [0.9, 0.09, 0.01]]), (np.abs(np.random.randn(2, 2, 4))), ], ) @pytest.mark.parametrize("extra_size", [(1,), (2,), (2, 3)]) def test_multinomial_vectorized(self, n, p, extra_size): n = intX(np.array(n)) p = floatX(np.array(p)) p /= p.sum(axis=-1, keepdims=True) _, bcast_p = broadcast_params([n, p], ndims_params=[0, 1]) size = extra_size + bcast_p.shape[:-1] mn = pm.Multinomial.dist(n=n, p=p, size=size) vals = mn.eval() assert_almost_equal( scipy.stats.multinomial.logpmf(vals, n, p), > pm.logp(mn, vals).eval(), decimal=4, err_msg=f"vals={vals}", ) pymc/tests/test_distributions.py:2205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{[[-357.758..04379003]]}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ____________________________________ TestMatchesScipy.test_multinomial_zero_probs ____________________________________ self = def test_multinomial_zero_probs(self): # test multinomial accepts 0 probabilities / observations: mn = pm.Multinomial.dist(n=100, p=[0.0, 0.0, 1.0]) > assert pm.logp(mn, np.array([0, 0, 100])).eval() >= 0 E assert array(nan) >= 0 E + where array(nan) = () E + where = Check{}.0.eval E + where Check{}.0 = (multinomial_rv{1, (0, 1), int64, False}.out, array([ 0, 0, 100])) E + where = pm.logp E + and array([ 0, 0, 100]) = ([0, 0, 100]) E + where = np.array pymc/tests/test_distributions.py:2213: AssertionError ___________________________________ test_multinomial_moment[p3-10-None-expected3] ____________________________________ p = array([[0.3 , 0.6 , 0.05, 0.05], [0.25, 0.25, 0.25, 0.25]]), n = 10, size = None expected = array([[4, 6, 0, 0], [4, 2, 2, 2]]) @pytest.mark.parametrize( "p, n, size, expected", [ (np.array([0.25, 0.25, 0.25, 0.25]), 1, None, np.array([1, 0, 0, 0])), (np.array([0.3, 0.6, 0.05, 0.05]), 2, None, np.array([1, 1, 0, 0])), (np.array([0.3, 0.6, 0.05, 0.05]), 10, None, np.array([4, 6, 0, 0])), ( np.array([[0.3, 0.6, 0.05, 0.05], [0.25, 0.25, 0.25, 0.25]]), 10, None, np.array([[4, 6, 0, 0], [4, 2, 2, 2]]), ), ( np.array([0.3, 0.6, 0.05, 0.05]), np.array([2, 10]), (1, 2), np.array([[[1, 1, 0, 0], [4, 6, 0, 0]]]), ), ( np.array([[0.25, 0.25, 0.25, 0.25], [0.26, 0.26, 0.26, 0.22]]), np.array([1, 10]), None, np.array([[1, 0, 0, 0], [2, 3, 3, 2]]), ), ( np.array([[0.25, 0.25, 0.25, 0.25], [0.26, 0.26, 0.26, 0.22]]), np.array([1, 10]), (3, 2), np.full((3, 2, 4), [[1, 0, 0, 0], [2, 3, 3, 2]]), ), ], ) def test_multinomial_moment(p, n, size, expected): with Model() as model: Multinomial("x", n=n, p=p, size=size) > assert_moment_is_expected(model, expected) pymc/tests/test_distributions_moments.py:1343: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/tests/test_distributions_moments.py:166: in assert_moment_is_expected logp_moment = joint_logp(model["x"], at.constant(moment), transformed=False).eval() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{-21.654175952952684}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ___________________________________ test_multinomial_moment[p5-n5-None-expected5] ____________________________________ p = array([[0.25, 0.25, 0.25, 0.25], [0.26, 0.26, 0.26, 0.22]]), n = array([ 1, 10]), size = None expected = array([[1, 0, 0, 0], [2, 3, 3, 2]]) @pytest.mark.parametrize( "p, n, size, expected", [ (np.array([0.25, 0.25, 0.25, 0.25]), 1, None, np.array([1, 0, 0, 0])), (np.array([0.3, 0.6, 0.05, 0.05]), 2, None, np.array([1, 1, 0, 0])), (np.array([0.3, 0.6, 0.05, 0.05]), 10, None, np.array([4, 6, 0, 0])), ( np.array([[0.3, 0.6, 0.05, 0.05], [0.25, 0.25, 0.25, 0.25]]), 10, None, np.array([[4, 6, 0, 0], [4, 2, 2, 2]]), ), ( np.array([0.3, 0.6, 0.05, 0.05]), np.array([2, 10]), (1, 2), np.array([[[1, 1, 0, 0], [4, 6, 0, 0]]]), ), ( np.array([[0.25, 0.25, 0.25, 0.25], [0.26, 0.26, 0.26, 0.22]]), np.array([1, 10]), None, np.array([[1, 0, 0, 0], [2, 3, 3, 2]]), ), ( np.array([[0.25, 0.25, 0.25, 0.25], [0.26, 0.26, 0.26, 0.22]]), np.array([1, 10]), (3, 2), np.full((3, 2, 4), [[1, 0, 0, 0], [2, 3, 3, 2]]), ), ], ) def test_multinomial_moment(p, n, size, expected): with Model() as model: Multinomial("x", n=n, p=p, size=size) > assert_moment_is_expected(model, expected) pymc/tests/test_distributions_moments.py:1343: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/tests/test_distributions_moments.py:166: in assert_moment_is_expected logp_moment = joint_logp(model["x"], at.constant(moment), transformed=False).eval() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{[-20.16095...05653974]}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ___________________________________ test_multinomial_moment[p6-n6-size6-expected6] ___________________________________ p = array([[0.25, 0.25, 0.25, 0.25], [0.26, 0.26, 0.26, 0.22]]), n = array([ 1, 10]), size = (3, 2) expected = array([[[1, 0, 0, 0], [2, 3, 3, 2]], [[1, 0, 0, 0], [2, 3, 3, 2]], [[1, 0, 0, 0], [2, 3, 3, 2]]]) @pytest.mark.parametrize( "p, n, size, expected", [ (np.array([0.25, 0.25, 0.25, 0.25]), 1, None, np.array([1, 0, 0, 0])), (np.array([0.3, 0.6, 0.05, 0.05]), 2, None, np.array([1, 1, 0, 0])), (np.array([0.3, 0.6, 0.05, 0.05]), 10, None, np.array([4, 6, 0, 0])), ( np.array([[0.3, 0.6, 0.05, 0.05], [0.25, 0.25, 0.25, 0.25]]), 10, None, np.array([[4, 6, 0, 0], [4, 2, 2, 2]]), ), ( np.array([0.3, 0.6, 0.05, 0.05]), np.array([2, 10]), (1, 2), np.array([[[1, 1, 0, 0], [4, 6, 0, 0]]]), ), ( np.array([[0.25, 0.25, 0.25, 0.25], [0.26, 0.26, 0.26, 0.22]]), np.array([1, 10]), None, np.array([[1, 0, 0, 0], [2, 3, 3, 2]]), ), ( np.array([[0.25, 0.25, 0.25, 0.25], [0.26, 0.26, 0.26, 0.22]]), np.array([1, 10]), (3, 2), np.full((3, 2, 4), [[1, 0, 0, 0], [2, 3, 3, 2]]), ), ], ) def test_multinomial_moment(p, n, size, expected): with Model() as model: Multinomial("x", n=n, p=p, size=size) > assert_moment_is_expected(model, expected) pymc/tests/test_distributions_moments.py:1343: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/tests/test_distributions_moments.py:166: in assert_moment_is_expected logp_moment = joint_logp(model["x"], at.constant(moment), transformed=False).eval() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{[-60.48285...37844436]}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ____________________________________ TestDataPyMC.test_multivariate_observations _____________________________________ self = def test_multivariate_observations(self): coords = {"direction": ["x", "y", "z"], "experiment": np.arange(20)} data = np.random.multinomial(20, [0.2, 0.3, 0.5], size=20) with pm.Model(coords=coords): p = pm.Beta("p", 1, 1, size=(3,)) p = p / p.sum() pm.Multinomial("y", 20, p, dims=("experiment", "direction"), observed=data) idata = pm.sample(draws=50, chains=2, tune=100, return_inferencedata=True) test_dict = { "posterior": ["p"], "sample_stats": ["lp"], "log_likelihood": ["y"], "observed_data": ["y"], } fails = check_multiple_attrs(test_dict, idata) assert not fails assert "direction" not in idata.log_likelihood.dims assert "direction" in idata.observed_data.dims > assert idata.log_likelihood["y"].shape == (2, 50, 20) E assert (2, 50, 1) == (2, 50, 20) E At index 2 diff: 1 != 20 E Use -v to get more diff pymc/tests/test_idata_conversion.py:556: AssertionError ------------------------------------------------ Captured stdout call ------------------------------------------------ |██████████████████████████████████| 100.00% [300/300 00:00<00:00 Sampling 2 chains, 0 divergences] ------------------------------------------------- Captured log call -------------------------------------------------- WARNING pymc:sampling.py:517 Only 50 samples in chain. ________________________________ TestMixtureSameFamily.test_with_multinomial[(3, 4)] _________________________________ self = , batch_shape = (3, 4) @pytest.mark.parametrize("batch_shape", [(3, 4), (20,)], ids=str) def test_with_multinomial(self, batch_shape): p = np.random.uniform(size=(*batch_shape, self.mixture_comps, 3)) n = 100 * np.ones((*batch_shape, 1)) w = np.ones(self.mixture_comps) / self.mixture_comps mixture_axis = len(batch_shape) with Model() as model: comp_dists = Multinomial.dist(p=p, n=n, shape=(*batch_shape, self.mixture_comps, 3)) mixture = Mixture( "mixture", w=w, comp_dists=comp_dists, shape=(*batch_shape, 3), ) prior = sample_prior_predictive(samples=self.n_samples, return_inferencedata=False) assert prior["mixture"].shape == (self.n_samples, *batch_shape, 3) assert draw(mixture, draws=self.size).shape == (self.size, *batch_shape, 3) if aesara.config.floatX == "float32": rtol = 1e-4 else: rtol = 1e-7 initial_point = model.initial_point() comp_logp = logp(comp_dists, initial_point["mixture"].reshape(*batch_shape, 1, 3)) log_sum_exp = logsumexp( > comp_logp.eval() + np.log(w), axis=mixture_axis, keepdims=True ).sum() pymc/tests/test_mixture.py:1002: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{(3, 4, 1) ..3816115228}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError _________________________________ TestMixtureSameFamily.test_with_multinomial[(20,)] _________________________________ self = , batch_shape = (20,) @pytest.mark.parametrize("batch_shape", [(3, 4), (20,)], ids=str) def test_with_multinomial(self, batch_shape): p = np.random.uniform(size=(*batch_shape, self.mixture_comps, 3)) n = 100 * np.ones((*batch_shape, 1)) w = np.ones(self.mixture_comps) / self.mixture_comps mixture_axis = len(batch_shape) with Model() as model: comp_dists = Multinomial.dist(p=p, n=n, shape=(*batch_shape, self.mixture_comps, 3)) mixture = Mixture( "mixture", w=w, comp_dists=comp_dists, shape=(*batch_shape, 3), ) prior = sample_prior_predictive(samples=self.n_samples, return_inferencedata=False) assert prior["mixture"].shape == (self.n_samples, *batch_shape, 3) assert draw(mixture, draws=self.size).shape == (self.size, *batch_shape, 3) if aesara.config.floatX == "float32": rtol = 1e-4 else: rtol = 1e-7 initial_point = model.initial_point() comp_logp = logp(comp_dists, initial_point["mixture"].reshape(*batch_shape, 1, 3)) log_sum_exp = logsumexp( > comp_logp.eval() + np.log(w), axis=mixture_axis, keepdims=True ).sum() pymc/tests/test_mixture.py:1002: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/basic.py:599: in eval self._fn_cache[inputs] = function(inputs, self) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/__init__.py:317: in function fn = pfunc( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/pfunc.py:374: in pfunc return orig_function( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1751: in orig_function m = Maker( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1521: in __init__ self.prepare_fgraph( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/compile/function/types.py:1411: in prepare_fgraph optimizer_profile = optimizer(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:111: in __call__ return self.optimize(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:102: in optimize ret = self.apply(fgraph, *args, **kwargs) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:290: in apply self.failure_callback(e, self, optimizer) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:225: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:279: in apply sub_prof = optimizer.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:2376: in apply sub_prof = gopt.apply(fgraph) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1971: in apply nb += self.process_node(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1864: in process_node self.failure_callback( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1767: in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1755: in warn raise exc ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1861: in process_node replacements = lopt.transform(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py:1066: in transform return self.fn(fgraph, node) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py:2785: in constant_folding required = thunk() ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py:103: in rval thunk() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __call__(self): failure = run_cthunk(self.cthunk) if failure: task, taskname, id = self.find_task(failure) try: trace = task.trace except AttributeError: trace = () try: exc_type, _exc_value, exc_trace = self.error_storage if task in self.nodes: self.position_of_error = self.nodes.index(task) # this can be used to retrieve the location the Op was declared exc_value = exc_type(_exc_value) exc_value.__thunk_trace__ = trace except Exception: print( ( "ERROR retrieving error_storage." "Was the error set in the c code?" ), end=" ", file=sys.stderr, ) print(self.error_storage, file=sys.stderr) raise > raise exc_value.with_traceback(exc_trace) E aeppl.logprob.ParameterValueError ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py:1769: ParameterValueError ------------------------------------------------- Captured log call -------------------------------------------------- ERROR aesara.graph.opt:opt.py:1746 Optimization failure due to: constant_folding ERROR aesara.graph.opt:opt.py:1747 node: Check{}(TensorConstant{(20, 1) of..3231036679}, TensorConstant{False}) ERROR aesara.graph.opt:opt.py:1748 TRACEBACK: ERROR aesara.graph.opt:opt.py:1749 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError ERROR aesara.graph.opt:opt.py:221 SeqOptimizer apply ERROR aesara.graph.opt:opt.py:222 Traceback: ERROR aesara.graph.opt:opt.py:223 Traceback (most recent call last): File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 279, in apply sub_prof = optimizer.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 2376, in apply sub_prof = gopt.apply(fgraph) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1971, in apply nb += self.process_node(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1864, in process_node self.failure_callback( File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1767, in warn_inplace return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1755, in warn raise exc File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1861, in process_node replacements = lopt.transform(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/graph/opt.py", line 1066, in transform return self.fn(fgraph, node) File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/tensor/basic_opt.py", line 2785, in constant_folding required = thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/op.py", line 103, in rval thunk() File "/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/aesara/link/c/basic.py", line 1769, in __call__ raise exc_value.with_traceback(exc_trace) aeppl.logprob.ParameterValueError _________________________________________ TestMetropolisUniform.test_kstest __________________________________________ self = def test_kstest(self): for varname, cdf in self.cdfs.items(): samples = self.samples[varname] if samples.ndim == 1: t, p = stats.kstest(samples[:: self.ks_thin], cdf=cdf) > assert self.alpha < p E AssertionError pymc/tests/sampler_fixtures.py:51: AssertionError ----------------------------------------------- Captured stdout setup ------------------------------------------------ |████████████████████████████| 100.00% [240000/240000 00:15<00:00 Sampling 4 chains, 0 divergences] ___________________________________________________ test_init_nuts ___________________________________________________ caplog = <_pytest.logging.LogCaptureFixture object at 0x7f8d0c0586d0> def test_init_nuts(caplog): with pm.Model() as model: a = pm.Normal("a") pm.sample(10, tune=10) > assert "Initializing NUTS" in caplog.text E AssertionError: assert 'Initializing NUTS' in 'WARNING pymc:sampling.py:517 Only 10 samples in chain.\n' E + where 'WARNING pymc:sampling.py:517 Only 10 samples in chain.\n' = <_pytest.logging.LogCaptureFixture object at 0x7f8d0c0586d0>.text pymc/tests/test_sampling.py:1479: AssertionError ------------------------------------------------ Captured stdout call ------------------------------------------------ |████████████████████████████████████| 100.00% [80/80 00:00<00:00 Sampling 4 chains, 0 divergences] ------------------------------------------------- Captured log call -------------------------------------------------- WARNING pymc:sampling.py:517 Only 10 samples in chain. ________________________________ test_transform_samples[1-None-sample_blackjax_nuts] _________________________________ sampler = , postprocessing_backend = None, chains = 1 @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize("postprocessing_backend", [None, "cpu"]) @pytest.mark.parametrize( "chains", [ pytest.param(1), pytest.param( 2, marks=pytest.mark.skipif(len(jax.devices()) < 2, reason="not enough devices") ), ], ) def test_transform_samples(sampler, postprocessing_backend, chains): aesara.config.on_opt_error = "raise" np.random.seed(13244) obs = np.random.normal(10, 2, size=100) obs_at = aesara.shared(obs, borrow=True, name="obs") with pm.Model() as model: a = pm.Uniform("a", -20, 20) sigma = pm.HalfNormal("sigma", shape=(2,)) b = pm.Normal("b", a, sigma=sigma.mean(), observed=obs_at) > trace = sampler( chains=chains, random_seed=1322, keep_untransformed=True, postprocessing_backend=postprocessing_backend, ) pymc/tests/test_sampling_jax.py:57: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: in import blackjax.optimizers.dual_averaging as dual_averaging ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/optimizers/__init__.py:1: in from . import dual_averaging, lbfgs _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp import jax.random > import jaxopt E ModuleNotFoundError: No module named 'jaxopt' ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/optimizers/lbfgs.py:6: ModuleNotFoundError _________________________________ test_transform_samples[1-cpu-sample_blackjax_nuts] _________________________________ sampler = , postprocessing_backend = 'cpu', chains = 1 @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize("postprocessing_backend", [None, "cpu"]) @pytest.mark.parametrize( "chains", [ pytest.param(1), pytest.param( 2, marks=pytest.mark.skipif(len(jax.devices()) < 2, reason="not enough devices") ), ], ) def test_transform_samples(sampler, postprocessing_backend, chains): aesara.config.on_opt_error = "raise" np.random.seed(13244) obs = np.random.normal(10, 2, size=100) obs_at = aesara.shared(obs, borrow=True, name="obs") with pm.Model() as model: a = pm.Uniform("a", -20, 20) sigma = pm.HalfNormal("sigma", shape=(2,)) b = pm.Normal("b", a, sigma=sigma.mean(), observed=obs_at) > trace = sampler( chains=chains, random_seed=1322, keep_untransformed=True, postprocessing_backend=postprocessing_backend, ) pymc/tests/test_sampling_jax.py:57: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError ________________________________ test_transform_samples[2-None-sample_blackjax_nuts] _________________________________ sampler = , postprocessing_backend = None, chains = 2 @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize("postprocessing_backend", [None, "cpu"]) @pytest.mark.parametrize( "chains", [ pytest.param(1), pytest.param( 2, marks=pytest.mark.skipif(len(jax.devices()) < 2, reason="not enough devices") ), ], ) def test_transform_samples(sampler, postprocessing_backend, chains): aesara.config.on_opt_error = "raise" np.random.seed(13244) obs = np.random.normal(10, 2, size=100) obs_at = aesara.shared(obs, borrow=True, name="obs") with pm.Model() as model: a = pm.Uniform("a", -20, 20) sigma = pm.HalfNormal("sigma", shape=(2,)) b = pm.Normal("b", a, sigma=sigma.mean(), observed=obs_at) > trace = sampler( chains=chains, random_seed=1322, keep_untransformed=True, postprocessing_backend=postprocessing_backend, ) pymc/tests/test_sampling_jax.py:57: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError _________________________________ test_transform_samples[2-cpu-sample_blackjax_nuts] _________________________________ sampler = , postprocessing_backend = 'cpu', chains = 2 @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize("postprocessing_backend", [None, "cpu"]) @pytest.mark.parametrize( "chains", [ pytest.param(1), pytest.param( 2, marks=pytest.mark.skipif(len(jax.devices()) < 2, reason="not enough devices") ), ], ) def test_transform_samples(sampler, postprocessing_backend, chains): aesara.config.on_opt_error = "raise" np.random.seed(13244) obs = np.random.normal(10, 2, size=100) obs_at = aesara.shared(obs, borrow=True, name="obs") with pm.Model() as model: a = pm.Uniform("a", -20, 20) sigma = pm.HalfNormal("sigma", shape=(2,)) b = pm.Normal("b", a, sigma=sigma.mean(), observed=obs_at) > trace = sampler( chains=chains, random_seed=1322, keep_untransformed=True, postprocessing_backend=postprocessing_backend, ) pymc/tests/test_sampling_jax.py:57: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError __________________________________ test_deterministic_samples[sample_blackjax_nuts] __________________________________ sampler = @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.skipif(len(jax.devices()) < 2, reason="not enough devices") def test_deterministic_samples(sampler): aesara.config.on_opt_error = "raise" np.random.seed(13244) obs = np.random.normal(10, 2, size=100) obs_at = aesara.shared(obs, borrow=True, name="obs") with pm.Model() as model: a = pm.Uniform("a", -20, 20) b = pm.Deterministic("b", a / 2.0) c = pm.Normal("c", a, sigma=1.0, observed=obs_at) > trace = sampler(chains=2, random_seed=1322, keep_untransformed=True) pymc/tests/test_sampling_jax.py:104: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError _____________________________ test_idata_kwargs[None-idata_kwargs0-sample_blackjax_nuts] _____________________________ model_test_idata_kwargs = sampler = , idata_kwargs = {}, postprocessing_backend = None @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize( "idata_kwargs", [ dict(), dict(log_likelihood=False), # Overwrite models coords dict(coords={"x_coord": ["x1", "x2"]}), # Overwrite dims from dist specification in model dict(dims={"x": ["x_coord2"]}), # Overwrite both coords and dims dict(coords={"x_coord3": ["A", "B"]}, dims={"x": ["x_coord3"]}), ], ) @pytest.mark.parametrize("postprocessing_backend", [None, "cpu"]) def test_idata_kwargs(model_test_idata_kwargs, sampler, idata_kwargs, postprocessing_backend): with model_test_idata_kwargs: > idata = sampler( tune=50, draws=50, chains=1, idata_kwargs=idata_kwargs, postprocessing_backend=postprocessing_backend, ) pymc/tests/test_sampling_jax.py:195: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError _____________________________ test_idata_kwargs[None-idata_kwargs1-sample_blackjax_nuts] _____________________________ model_test_idata_kwargs = sampler = , idata_kwargs = {'log_likelihood': False} postprocessing_backend = None @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize( "idata_kwargs", [ dict(), dict(log_likelihood=False), # Overwrite models coords dict(coords={"x_coord": ["x1", "x2"]}), # Overwrite dims from dist specification in model dict(dims={"x": ["x_coord2"]}), # Overwrite both coords and dims dict(coords={"x_coord3": ["A", "B"]}, dims={"x": ["x_coord3"]}), ], ) @pytest.mark.parametrize("postprocessing_backend", [None, "cpu"]) def test_idata_kwargs(model_test_idata_kwargs, sampler, idata_kwargs, postprocessing_backend): with model_test_idata_kwargs: > idata = sampler( tune=50, draws=50, chains=1, idata_kwargs=idata_kwargs, postprocessing_backend=postprocessing_backend, ) pymc/tests/test_sampling_jax.py:195: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError _____________________________ test_idata_kwargs[None-idata_kwargs2-sample_blackjax_nuts] _____________________________ model_test_idata_kwargs = sampler = , idata_kwargs = {'coords': {'x_coord': ['x1', 'x2']}} postprocessing_backend = None @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize( "idata_kwargs", [ dict(), dict(log_likelihood=False), # Overwrite models coords dict(coords={"x_coord": ["x1", "x2"]}), # Overwrite dims from dist specification in model dict(dims={"x": ["x_coord2"]}), # Overwrite both coords and dims dict(coords={"x_coord3": ["A", "B"]}, dims={"x": ["x_coord3"]}), ], ) @pytest.mark.parametrize("postprocessing_backend", [None, "cpu"]) def test_idata_kwargs(model_test_idata_kwargs, sampler, idata_kwargs, postprocessing_backend): with model_test_idata_kwargs: > idata = sampler( tune=50, draws=50, chains=1, idata_kwargs=idata_kwargs, postprocessing_backend=postprocessing_backend, ) pymc/tests/test_sampling_jax.py:195: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError _____________________________ test_idata_kwargs[None-idata_kwargs3-sample_blackjax_nuts] _____________________________ model_test_idata_kwargs = sampler = , idata_kwargs = {'dims': {'x': ['x_coord2']}} postprocessing_backend = None @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize( "idata_kwargs", [ dict(), dict(log_likelihood=False), # Overwrite models coords dict(coords={"x_coord": ["x1", "x2"]}), # Overwrite dims from dist specification in model dict(dims={"x": ["x_coord2"]}), # Overwrite both coords and dims dict(coords={"x_coord3": ["A", "B"]}, dims={"x": ["x_coord3"]}), ], ) @pytest.mark.parametrize("postprocessing_backend", [None, "cpu"]) def test_idata_kwargs(model_test_idata_kwargs, sampler, idata_kwargs, postprocessing_backend): with model_test_idata_kwargs: > idata = sampler( tune=50, draws=50, chains=1, idata_kwargs=idata_kwargs, postprocessing_backend=postprocessing_backend, ) pymc/tests/test_sampling_jax.py:195: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError _____________________________ test_idata_kwargs[None-idata_kwargs4-sample_blackjax_nuts] _____________________________ model_test_idata_kwargs = sampler = idata_kwargs = {'coords': {'x_coord3': ['A', 'B']}, 'dims': {'x': ['x_coord3']}}, postprocessing_backend = None @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize( "idata_kwargs", [ dict(), dict(log_likelihood=False), # Overwrite models coords dict(coords={"x_coord": ["x1", "x2"]}), # Overwrite dims from dist specification in model dict(dims={"x": ["x_coord2"]}), # Overwrite both coords and dims dict(coords={"x_coord3": ["A", "B"]}, dims={"x": ["x_coord3"]}), ], ) @pytest.mark.parametrize("postprocessing_backend", [None, "cpu"]) def test_idata_kwargs(model_test_idata_kwargs, sampler, idata_kwargs, postprocessing_backend): with model_test_idata_kwargs: > idata = sampler( tune=50, draws=50, chains=1, idata_kwargs=idata_kwargs, postprocessing_backend=postprocessing_backend, ) pymc/tests/test_sampling_jax.py:195: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError _____________________________ test_idata_kwargs[cpu-idata_kwargs0-sample_blackjax_nuts] ______________________________ model_test_idata_kwargs = sampler = , idata_kwargs = {}, postprocessing_backend = 'cpu' @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize( "idata_kwargs", [ dict(), dict(log_likelihood=False), # Overwrite models coords dict(coords={"x_coord": ["x1", "x2"]}), # Overwrite dims from dist specification in model dict(dims={"x": ["x_coord2"]}), # Overwrite both coords and dims dict(coords={"x_coord3": ["A", "B"]}, dims={"x": ["x_coord3"]}), ], ) @pytest.mark.parametrize("postprocessing_backend", [None, "cpu"]) def test_idata_kwargs(model_test_idata_kwargs, sampler, idata_kwargs, postprocessing_backend): with model_test_idata_kwargs: > idata = sampler( tune=50, draws=50, chains=1, idata_kwargs=idata_kwargs, postprocessing_backend=postprocessing_backend, ) pymc/tests/test_sampling_jax.py:195: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError _____________________________ test_idata_kwargs[cpu-idata_kwargs1-sample_blackjax_nuts] ______________________________ model_test_idata_kwargs = sampler = , idata_kwargs = {'log_likelihood': False} postprocessing_backend = 'cpu' @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize( "idata_kwargs", [ dict(), dict(log_likelihood=False), # Overwrite models coords dict(coords={"x_coord": ["x1", "x2"]}), # Overwrite dims from dist specification in model dict(dims={"x": ["x_coord2"]}), # Overwrite both coords and dims dict(coords={"x_coord3": ["A", "B"]}, dims={"x": ["x_coord3"]}), ], ) @pytest.mark.parametrize("postprocessing_backend", [None, "cpu"]) def test_idata_kwargs(model_test_idata_kwargs, sampler, idata_kwargs, postprocessing_backend): with model_test_idata_kwargs: > idata = sampler( tune=50, draws=50, chains=1, idata_kwargs=idata_kwargs, postprocessing_backend=postprocessing_backend, ) pymc/tests/test_sampling_jax.py:195: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError _____________________________ test_idata_kwargs[cpu-idata_kwargs2-sample_blackjax_nuts] ______________________________ model_test_idata_kwargs = sampler = , idata_kwargs = {'coords': {'x_coord': ['x1', 'x2']}} postprocessing_backend = 'cpu' @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize( "idata_kwargs", [ dict(), dict(log_likelihood=False), # Overwrite models coords dict(coords={"x_coord": ["x1", "x2"]}), # Overwrite dims from dist specification in model dict(dims={"x": ["x_coord2"]}), # Overwrite both coords and dims dict(coords={"x_coord3": ["A", "B"]}, dims={"x": ["x_coord3"]}), ], ) @pytest.mark.parametrize("postprocessing_backend", [None, "cpu"]) def test_idata_kwargs(model_test_idata_kwargs, sampler, idata_kwargs, postprocessing_backend): with model_test_idata_kwargs: > idata = sampler( tune=50, draws=50, chains=1, idata_kwargs=idata_kwargs, postprocessing_backend=postprocessing_backend, ) pymc/tests/test_sampling_jax.py:195: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError _____________________________ test_idata_kwargs[cpu-idata_kwargs3-sample_blackjax_nuts] ______________________________ model_test_idata_kwargs = sampler = , idata_kwargs = {'dims': {'x': ['x_coord2']}} postprocessing_backend = 'cpu' @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize( "idata_kwargs", [ dict(), dict(log_likelihood=False), # Overwrite models coords dict(coords={"x_coord": ["x1", "x2"]}), # Overwrite dims from dist specification in model dict(dims={"x": ["x_coord2"]}), # Overwrite both coords and dims dict(coords={"x_coord3": ["A", "B"]}, dims={"x": ["x_coord3"]}), ], ) @pytest.mark.parametrize("postprocessing_backend", [None, "cpu"]) def test_idata_kwargs(model_test_idata_kwargs, sampler, idata_kwargs, postprocessing_backend): with model_test_idata_kwargs: > idata = sampler( tune=50, draws=50, chains=1, idata_kwargs=idata_kwargs, postprocessing_backend=postprocessing_backend, ) pymc/tests/test_sampling_jax.py:195: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError _____________________________ test_idata_kwargs[cpu-idata_kwargs4-sample_blackjax_nuts] ______________________________ model_test_idata_kwargs = sampler = idata_kwargs = {'coords': {'x_coord3': ['A', 'B']}, 'dims': {'x': ['x_coord3']}}, postprocessing_backend = 'cpu' @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize( "idata_kwargs", [ dict(), dict(log_likelihood=False), # Overwrite models coords dict(coords={"x_coord": ["x1", "x2"]}), # Overwrite dims from dist specification in model dict(dims={"x": ["x_coord2"]}), # Overwrite both coords and dims dict(coords={"x_coord3": ["A", "B"]}, dims={"x": ["x_coord3"]}), ], ) @pytest.mark.parametrize("postprocessing_backend", [None, "cpu"]) def test_idata_kwargs(model_test_idata_kwargs, sampler, idata_kwargs, postprocessing_backend): with model_test_idata_kwargs: > idata = sampler( tune=50, draws=50, chains=1, idata_kwargs=idata_kwargs, postprocessing_backend=postprocessing_backend, ) pymc/tests/test_sampling_jax.py:195: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError _____________________________________ test_seeding[1-None-sample_blackjax_nuts] ______________________________________ chains = 1, random_seed = None, sampler = @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize("random_seed", (None, 123)) @pytest.mark.parametrize( "chains", [ pytest.param(1), pytest.param( 2, marks=pytest.mark.skipif(len(jax.devices()) < 2, reason="not enough devices") ), ], ) def test_seeding(chains, random_seed, sampler): sample_kwargs = dict( tune=100, draws=5, chains=chains, random_seed=random_seed, ) with pm.Model() as m: pm.Normal("x", mu=0, sigma=1) > result1 = sampler(**sample_kwargs) pymc/tests/test_sampling_jax.py:267: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError ______________________________________ test_seeding[1-123-sample_blackjax_nuts] ______________________________________ chains = 1, random_seed = 123, sampler = @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize("random_seed", (None, 123)) @pytest.mark.parametrize( "chains", [ pytest.param(1), pytest.param( 2, marks=pytest.mark.skipif(len(jax.devices()) < 2, reason="not enough devices") ), ], ) def test_seeding(chains, random_seed, sampler): sample_kwargs = dict( tune=100, draws=5, chains=chains, random_seed=random_seed, ) with pm.Model() as m: pm.Normal("x", mu=0, sigma=1) > result1 = sampler(**sample_kwargs) pymc/tests/test_sampling_jax.py:267: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError _____________________________________ test_seeding[2-None-sample_blackjax_nuts] ______________________________________ chains = 2, random_seed = None, sampler = @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize("random_seed", (None, 123)) @pytest.mark.parametrize( "chains", [ pytest.param(1), pytest.param( 2, marks=pytest.mark.skipif(len(jax.devices()) < 2, reason="not enough devices") ), ], ) def test_seeding(chains, random_seed, sampler): sample_kwargs = dict( tune=100, draws=5, chains=chains, random_seed=random_seed, ) with pm.Model() as m: pm.Normal("x", mu=0, sigma=1) > result1 = sampler(**sample_kwargs) pymc/tests/test_sampling_jax.py:267: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError ______________________________________ test_seeding[2-123-sample_blackjax_nuts] ______________________________________ chains = 2, random_seed = 123, sampler = @pytest.mark.parametrize( "sampler", [ sample_blackjax_nuts, sample_numpyro_nuts, ], ) @pytest.mark.parametrize("random_seed", (None, 123)) @pytest.mark.parametrize( "chains", [ pytest.param(1), pytest.param( 2, marks=pytest.mark.skipif(len(jax.devices()) < 2, reason="not enough devices") ), ], ) def test_seeding(chains, random_seed, sampler): sample_kwargs = dict( tune=100, draws=5, chains=chains, random_seed=random_seed, ) with pm.Model() as m: pm.Normal("x", mu=0, sigma=1) > result1 = sampler(**sample_kwargs) pymc/tests/test_sampling_jax.py:267: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pymc/sampling_jax.py:276: in sample_blackjax_nuts import blackjax ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py:3: in from .kernels import ( ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/kernels.py:6: in import blackjax.adaptation as adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/__init__.py:1: in from . import pathfinder_adaptation, window_adaptation ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/pathfinder_adaptation.py:7: in from blackjax.adaptation.step_size import ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """Step size adaptation""" from typing import Callable, NamedTuple, Tuple import jax import jax.numpy as jnp > import blackjax.optimizers.dual_averaging as dual_averaging E ImportError: cannot import name 'optimizers' from partially initialized module 'blackjax' (most likely due to a circular import) (/home/virgile/.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/__init__.py) ../../.miniconda3/envs/pymc-dev/lib/python3.10/site-packages/blackjax/adaptation/step_size.py:7: ImportError ============================================== short test summary info =============================================== FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial[2] - AssertionError: FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial[3] - AssertionError: FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_invalid_value - aeppl.logprob.Parameter... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size0-p0-n1] - Asserti... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size0-p0-n2] - Asserti... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size0-p1-10] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size0-p1-n1] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size0-p1-n2] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size0-p2-10] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size0-p2-n1] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size0-p2-n2] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size1-p0-10] - Asserti... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size1-p0-n1] - Asserti... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size1-p0-n2] - Asserti... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size1-p1-10] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size1-p1-n1] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size1-p1-n2] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size1-p2-10] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size1-p2-n1] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size1-p2-n2] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size2-p0-10] - Asserti... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size2-p0-n1] - Asserti... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size2-p0-n2] - Asserti... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size2-p1-10] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size2-p1-n1] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size2-p1-n2] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size2-p2-10] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size2-p2-n1] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_vectorized[extra_size2-p2-n2] - aeppl.l... FAILED pymc/tests/test_distributions.py::TestMatchesScipy::test_multinomial_zero_probs - assert array(nan) >= 0 FAILED pymc/tests/test_distributions_moments.py::test_multinomial_moment[p3-10-None-expected3] - aeppl.logprob.Para... FAILED pymc/tests/test_distributions_moments.py::test_multinomial_moment[p5-n5-None-expected5] - aeppl.logprob.Para... FAILED pymc/tests/test_distributions_moments.py::test_multinomial_moment[p6-n6-size6-expected6] - aeppl.logprob.Par... FAILED pymc/tests/test_idata_conversion.py::TestDataPyMC::test_multivariate_observations - assert (2, 50, 1) == (2,... FAILED pymc/tests/test_mixture.py::TestMixtureSameFamily::test_with_multinomial[(3, 4)] - aeppl.logprob.ParameterVa... FAILED pymc/tests/test_mixture.py::TestMixtureSameFamily::test_with_multinomial[(20,)] - aeppl.logprob.ParameterVal... FAILED pymc/tests/test_posteriors.py::TestMetropolisUniform::test_kstest - AssertionError FAILED pymc/tests/test_sampling.py::test_init_nuts - AssertionError: assert 'Initializing NUTS' in 'WARNING pymc:s... FAILED pymc/tests/test_sampling_jax.py::test_transform_samples[1-None-sample_blackjax_nuts] - ModuleNotFoundError: ... FAILED pymc/tests/test_sampling_jax.py::test_transform_samples[1-cpu-sample_blackjax_nuts] - ImportError: cannot im... FAILED pymc/tests/test_sampling_jax.py::test_transform_samples[2-None-sample_blackjax_nuts] - ImportError: cannot i... FAILED pymc/tests/test_sampling_jax.py::test_transform_samples[2-cpu-sample_blackjax_nuts] - ImportError: cannot im... FAILED pymc/tests/test_sampling_jax.py::test_deterministic_samples[sample_blackjax_nuts] - ImportError: cannot impo... FAILED pymc/tests/test_sampling_jax.py::test_idata_kwargs[None-idata_kwargs0-sample_blackjax_nuts] - ImportError: c... FAILED pymc/tests/test_sampling_jax.py::test_idata_kwargs[None-idata_kwargs1-sample_blackjax_nuts] - ImportError: c... FAILED pymc/tests/test_sampling_jax.py::test_idata_kwargs[None-idata_kwargs2-sample_blackjax_nuts] - ImportError: c... FAILED pymc/tests/test_sampling_jax.py::test_idata_kwargs[None-idata_kwargs3-sample_blackjax_nuts] - ImportError: c... FAILED pymc/tests/test_sampling_jax.py::test_idata_kwargs[None-idata_kwargs4-sample_blackjax_nuts] - ImportError: c... FAILED pymc/tests/test_sampling_jax.py::test_idata_kwargs[cpu-idata_kwargs0-sample_blackjax_nuts] - ImportError: ca... FAILED pymc/tests/test_sampling_jax.py::test_idata_kwargs[cpu-idata_kwargs1-sample_blackjax_nuts] - ImportError: ca... FAILED pymc/tests/test_sampling_jax.py::test_idata_kwargs[cpu-idata_kwargs2-sample_blackjax_nuts] - ImportError: ca... FAILED pymc/tests/test_sampling_jax.py::test_idata_kwargs[cpu-idata_kwargs3-sample_blackjax_nuts] - ImportError: ca... FAILED pymc/tests/test_sampling_jax.py::test_idata_kwargs[cpu-idata_kwargs4-sample_blackjax_nuts] - ImportError: ca... FAILED pymc/tests/test_sampling_jax.py::test_seeding[1-None-sample_blackjax_nuts] - ImportError: cannot import name... FAILED pymc/tests/test_sampling_jax.py::test_seeding[1-123-sample_blackjax_nuts] - ImportError: cannot import name ... FAILED pymc/tests/test_sampling_jax.py::test_seeding[2-None-sample_blackjax_nuts] - ImportError: cannot import name... FAILED pymc/tests/test_sampling_jax.py::test_seeding[2-123-sample_blackjax_nuts] - ImportError: cannot import name ... ================ 57 failed, 3241 passed, 14 skipped, 250 xfailed, 965 warnings in 1487.47s (0:24:47) ================