def plot_ppca_model_2D(N=1000, D=2, M=1): # z: [N, M], M = 1 p_z = Normal(loc=0.0, scale=1.0) z = p_z.sample(sample_shape=(N, )) # w: [M, D], M = 1, D = 2 p_w = Normal(loc=torch.zeros([M, D]), scale=torch.ones([M, D])).to_event(D) w = p_w.sample() print(w) plot_dist(z, label="p(z)", name="z_hist1D")
def generate(self, num_to_sample: int = 1): """Generate samples from prior.""" cuda_device = self._get_prediction_device() prior_mean = nn_util.move_to_device( torch.zeros((num_to_sample, self._latent_dim)), cuda_device, ) prior_stddev = torch.ones_like(prior_mean) prior = Normal(prior_mean, prior_stddev) latent = prior.sample() generated = self._decoder.generate(latent) return self.make_output_human_readable(generated)