def test_BatchedParameter(self): norm = DistributionWrapper(Normal, loc=0.0, scale=1.0) shape = 1000, 100 a = torch.ones((shape[0], 1)) init = DistributionWrapper(Normal, loc=a, scale=1.0) linear = AffineProcess((f, g), (a, 1.0), init, norm) # ===== Initialize ===== # x = linear.i_sample(shape) self.assert_timeseries_sampling(100, linear, x, shape)
def test_LinearNoBatch(self): norm = Normal(0., 1.) linear = AffineProcess((f, g), (1., 1.), norm, norm) # ===== Initialize ===== # x = linear.i_sample() # ===== Propagate ===== # num = 100 samps = [x] for t in range(num): samps.append(linear.propagate(samps[-1])) samps = torch.stack(samps) self.assertEqual(samps.size(), torch.Size([num + 1])) # ===== Sample path ===== # path = linear.sample_path(num + 1) self.assertEqual(samps.shape, path.shape)
def test_BatchedParameter(self): norm = Normal(0., 1.) shape = 1000, 100 a = torch.ones((shape[0], 1)) init = Normal(a, 1.) linear = AffineProcess((f, g), (a, 1.), init, norm) # ===== Initialize ===== # x = linear.i_sample(shape) # ===== Propagate ===== # num = 100 samps = [x] for t in range(num): samps.append(linear.propagate(samps[-1])) samps = torch.stack(samps) self.assertEqual(samps.size(), torch.Size([num + 1, *shape])) # ===== Sample path ===== # path = linear.sample_path(num + 1, shape) self.assertEqual(samps.shape, path.shape)