Example #1
0
 def testGaussianProcessPrior(self):
     batch_size = 3
     input_dim = 4
     output_dim = 5
     features = tf.to_float(np.random.rand(batch_size, input_dim))
     labels = tf.to_float(np.random.rand(batch_size, output_dim))
     model = tf.keras.Sequential([
         tf.keras.layers.Dense(2, activation=None),
         bayes.GaussianProcess(output_dim),
     ])
     outputs = model(features)
     log_prob = outputs.distribution.log_prob(labels)
     self.evaluate(tf.global_variables_initializer())
     log_prob_val, outputs_val = self.evaluate([log_prob, outputs])
     self.assertEqual(log_prob_val.shape, ())
     self.assertLessEqual(log_prob_val, 0.)
     self.assertEqual(outputs_val.shape, (batch_size, output_dim))
Example #2
0
 def testGaussianProcessPosterior(self):
     train_batch_size = 3
     test_batch_size = 2
     input_dim = 4
     output_dim = 5
     features = tf.to_float(np.random.rand(train_batch_size, input_dim))
     labels = tf.to_float(np.random.rand(train_batch_size, output_dim))
     layer = bayes.GaussianProcess(output_dim,
                                   conditional_inputs=features,
                                   conditional_outputs=labels)
     test_features = tf.to_float(np.random.rand(test_batch_size, input_dim))
     test_labels = tf.to_float(np.random.rand(test_batch_size, output_dim))
     test_outputs = layer(test_features)
     test_nats = -test_outputs.distribution.log_prob(test_labels)
     self.evaluate(tf.global_variables_initializer())
     test_nats_val, outputs_val = self.evaluate([test_nats, test_outputs])
     self.assertEqual(test_nats_val.shape, ())
     self.assertGreaterEqual(test_nats_val, 0.)
     self.assertEqual(outputs_val.shape, (test_batch_size, output_dim))