def resample_gaussian_states(self): self._aBl = None # clear any caching self._gaussian_normalizer, self.gaussian_states = \ filter_and_sample( self.mu_init, self.sigma_init, self.As, self.BBTs, self.Cs, self.DDTs, self.data)
def check_filter_and_sample(A, B, C, d, mu_init, sigma_init, data): rngstate = np.random.get_state() ll1, sample1 = filter_and_sample(mu_init, sigma_init, A, B.dot(B.T), C, np.diag(d ** 2), data) np.random.set_state(rngstate) ll2, sample2 = filter_and_sample_diagonal(mu_init, sigma_init, A, B.dot(B.T), C, d ** 2, data) assert np.isclose(ll1, ll2) assert np.allclose(sample1, sample2)
def check_filter_and_sample(A, B, C, d, mu_init, sigma_init, data): rngstate = np.random.get_state() ll1, sample1 = filter_and_sample(mu_init, sigma_init, A, B.dot(B.T), C, np.diag(d**2), data) np.random.set_state(rngstate) ll2, sample2 = filter_and_sample_diagonal(mu_init, sigma_init, A, B.dot(B.T), C, d**2, data) assert np.isclose(ll1, ll2) assert np.allclose(sample1, sample2)
def dense_sample_states(sigmasq_states, sigmasq_obs, mu_init, sigmasq_init, data): T, n = data.shape # construct corresponding dense model A = np.eye(n) sigma_states = np.diag(sigmasq_states) C = np.eye(n) sigma_obs = np.diag(sigmasq_obs) sigma_init = np.diag(sigmasq_init) return filter_and_sample( mu_init, sigma_init, A, sigma_states, C, sigma_obs, data)
def check_filter_and_sample(A, B, sigma_states, C, D, sigma_obs, mu_init, sigma_init, inputs, data): rngstate = np.random.get_state() ll1, sample1 = filter_and_sample(mu_init, sigma_init, A, B, sigma_states, C, D, sigma_obs, inputs, inputs) np.random.set_state(rngstate) ll2, sample2 = filter_and_sample_diagonal(mu_init, sigma_init, A, B, sigma_states, C, D, np.diag(sigma_obs), inputs, data) assert np.isclose(ll1, ll2) assert np.allclose(sample1, sample2)
def dense_sample_states(sigmasq_states, sigmasq_obs, mu_init, sigmasq_init, data): T, n = data.shape inputs = np.zeros((T, 0)) # construct corresponding dense model A = np.eye(n) B = np.zeros((n, 0)) sigma_states = np.diag(sigmasq_states) C = np.eye(n) D = np.zeros((n, 0)) sigma_obs = np.diag(sigmasq_obs) sigma_init = np.diag(sigmasq_init) return filter_and_sample(mu_init, sigma_init, A, B, sigma_states, C, D, sigma_obs, inputs, data)