def _build_iid_normal_model(self, num_timesteps, latent_size,<EOL>observation_size, transition_variance,<EOL>observation_variance):
transition_variance = self._build_placeholder(transition_variance)<EOL>observation_variance = self._build_placeholder(observation_variance)<EOL>random_orthogonal_matrix = lambda: np.linalg.qr(<EOL>np.random.randn(latent_size, latent_size))[<NUM_LIT:0>][:observation_size, :]<EOL>observation_matrix = self._build_placeholder(random_orthogonal_matrix())<EOL>model = tfd.LinearGaussianStateSpaceModel(<EOL>num_timesteps=num_timesteps,<EOL>transition_matrix=self._build_placeholder(<EOL>np.zeros([latent_size, latent_size])),<EOL>transition_noise=tfd.MultivariateNormalDiag(<EOL>scale_diag=tf.sqrt(transition_variance) *<EOL>tf.ones([latent_size], dtype=self.dtype)),<EOL>observation_matrix=observation_matrix,<EOL>observation_noise=tfd.MultivariateNormalDiag(<EOL>scale_diag=tf.sqrt(observation_variance) *<EOL>tf.ones([observation_size], dtype=self.dtype)),<EOL>initial_state_prior=tfd.MultivariateNormalDiag(<EOL>scale_diag=tf.sqrt(transition_variance) *<EOL>tf.ones([latent_size], dtype=self.dtype)),<EOL>validate_args=True)<EOL>return model<EOL>
Build a model whose outputs are IID normal by construction.