def test_remove_scan_op(): with pm.Model(): pm.Normal("n", 0, 1) inference = ADVI() buff = io.StringIO() inference.run_profiling(n=10).summary(buff) assert "aesara.scan.op.Scan" not in buff.getvalue() buff.close()
def test_clear_cache(): import cloudpickle with pm.Model(): pm.Normal("n", 0, 1) inference = ADVI() inference.fit(n=10) assert any(len(c) != 0 for c in inference.approx._cache.values()) inference.approx._cache.clear() # should not be cleared at this call assert all(len(c) == 0 for c in inference.approx._cache.values()) new_a = cloudpickle.loads(cloudpickle.dumps(inference.approx)) assert not hasattr(new_a, "_cache") inference_new = pm.KLqp(new_a) inference_new.fit(n=10) assert any(len(c) != 0 for c in inference_new.approx._cache.values()) inference_new.approx._cache.clear() assert all(len(c) == 0 for c in inference_new.approx._cache.values())