@@ -587,7 +587,7 @@ def test_model_shared_variable(self):
587
587
588
588
expected_p = np .array ([logistic .eval ({coeff : val }) for val in trace ["x" ][:samples ]])
589
589
assert post_pred ["obs" ].shape == (samples , 3 )
590
- assert np . allclose (post_pred ["p" ], expected_p )
590
+ npt . assert_allclose (post_pred ["p" ], expected_p )
591
591
592
592
# fast version
593
593
samples = 100
@@ -598,11 +598,12 @@ def test_model_shared_variable(self):
598
598
599
599
expected_p = np .array ([logistic .eval ({coeff : val }) for val in trace ["x" ][:samples ]])
600
600
assert post_pred ["obs" ].shape == (samples , 3 )
601
- assert np . allclose (post_pred ["p" ], expected_p )
601
+ npt . assert_allclose (post_pred ["p" ], expected_p )
602
602
603
603
def test_deterministic_of_observed (self ):
604
- meas_in_1 = pm .theanof .floatX (2 + 4 * np .random .randn (100 ))
605
- meas_in_2 = pm .theanof .floatX (5 + 4 * np .random .randn (100 ))
604
+ meas_in_1 = pm .theanof .floatX (2 + 4 * np .random .randn (10 ))
605
+ meas_in_2 = pm .theanof .floatX (5 + 4 * np .random .randn (10 ))
606
+ nchains = 2
606
607
with pm .Model () as model :
607
608
mu_in_1 = pm .Normal ("mu_in_1" , 0 , 1 )
608
609
sigma_in_1 = pm .HalfNormal ("sd_in_1" , 1 )
@@ -614,40 +615,38 @@ def test_deterministic_of_observed(self):
614
615
out_diff = in_1 + in_2
615
616
pm .Deterministic ("out" , out_diff )
616
617
617
- trace = pm .sample (100 )
618
- ppc_trace = pm .trace_to_dataframe (
619
- trace , varnames = [n for n in trace .varnames if n != "out" ]
620
- ).to_dict ("records" )
618
+ trace = pm .sample (100 , chains = nchains )
619
+ np .random .seed (0 )
621
620
with pytest .warns (DeprecationWarning ):
622
621
ppc = pm .sample_posterior_predictive (
623
622
model = model ,
624
- trace = ppc_trace ,
625
- samples = len (ppc_trace ) ,
623
+ trace = trace ,
624
+ samples = len (trace ) * nchains ,
626
625
vars = (model .deterministics + model .basic_RVs ),
627
626
)
628
627
629
- rtol = 1e-5 if theano .config .floatX == "float64" else 1e-3
630
- assert np . allclose (ppc ["in_1" ] + ppc ["in_2" ], ppc ["out" ], rtol = rtol )
628
+ rtol = 1e-5 if theano .config .floatX == "float64" else 1e-4
629
+ npt . assert_allclose (ppc ["in_1" ] + ppc ["in_2" ], ppc ["out" ], rtol = rtol )
631
630
631
+ np .random .seed (0 )
632
632
ppc = pm .sample_posterior_predictive (
633
633
model = model ,
634
- trace = ppc_trace ,
635
- samples = len (ppc_trace ) ,
634
+ trace = trace ,
635
+ samples = len (trace ) * nchains ,
636
636
var_names = [var .name for var in (model .deterministics + model .basic_RVs )],
637
637
)
638
638
639
- rtol = 1e-5 if theano .config .floatX == "float64" else 1e-3
640
- assert np .allclose (ppc ["in_1" ] + ppc ["in_2" ], ppc ["out" ], rtol = rtol )
639
+ npt .assert_allclose (ppc ["in_1" ] + ppc ["in_2" ], ppc ["out" ], rtol = rtol )
641
640
641
+ np .random .seed (0 )
642
642
ppc = pm .fast_sample_posterior_predictive (
643
643
model = model ,
644
- trace = ppc_trace ,
645
- samples = len (ppc_trace ) ,
644
+ trace = trace ,
645
+ samples = len (trace ) * nchains ,
646
646
var_names = [var .name for var in (model .deterministics + model .basic_RVs )],
647
647
)
648
648
649
- rtol = 1e-5 if theano .config .floatX == "float64" else 1e-3
650
- assert np .allclose (ppc ["in_1" ] + ppc ["in_2" ], ppc ["out" ], rtol = rtol )
649
+ npt .assert_allclose (ppc ["in_1" ] + ppc ["in_2" ], ppc ["out" ], rtol = rtol )
651
650
652
651
def test_deterministic_of_observed_modified_interface (self ):
653
652
meas_in_1 = pm .theanof .floatX (2 + 4 * np .random .randn (100 ))
@@ -675,7 +674,7 @@ def test_deterministic_of_observed_modified_interface(self):
675
674
)
676
675
677
676
rtol = 1e-5 if theano .config .floatX == "float64" else 1e-3
678
- assert np . allclose (ppc ["in_1" ] + ppc ["in_2" ], ppc ["out" ], rtol = rtol )
677
+ npt . assert_allclose (ppc ["in_1" ] + ppc ["in_2" ], ppc ["out" ], rtol = rtol )
679
678
680
679
ppc = pm .fast_sample_posterior_predictive (
681
680
model = model ,
@@ -685,7 +684,7 @@ def test_deterministic_of_observed_modified_interface(self):
685
684
)
686
685
687
686
rtol = 1e-5 if theano .config .floatX == "float64" else 1e-3
688
- assert np . allclose (ppc ["in_1" ] + ppc ["in_2" ], ppc ["out" ], rtol = rtol )
687
+ npt . assert_allclose (ppc ["in_1" ] + ppc ["in_2" ], ppc ["out" ], rtol = rtol )
689
688
690
689
def test_variable_type (self ):
691
690
with pm .Model () as model :
0 commit comments