コード例 #1
0
 def testBijectorForward(self):
     bijector = categorical_to_discrete.CategoricalToDiscrete(
         map_values=[0.1, 0.2, 0.3, 0.4], validate_args=True)
     self.assertAllClose([[0.1, 0.2, 0.3, 0.4], [0.4, 0.3, 0.2, 0.1]],
                         self.evaluate(
                             bijector.forward([[0, 1, 2, 3], [3, 2, 1,
                                                              0]])))
コード例 #2
0
 def testInverseLogDetJacobian(self):
     bijector = categorical_to_discrete.CategoricalToDiscrete(
         map_values=[0.1, 0.2], validate_args=True)
     self.assertAllClose(
         0,
         self.evaluate(
             bijector.inverse_log_det_jacobian([0.1, 0.2], event_ndims=0)))
コード例 #3
0
 def testBijectorInverse(self):
     bijector = categorical_to_discrete.CategoricalToDiscrete(
         map_values=[0.1, 0.2, 0.3, 0.4], validate_args=True)
     self.assertAllEqual([[3, 3, 3], [0, 1, 2]],
                         self.evaluate(
                             bijector.inverse([[0.400001, 0.4, 0.399999],
                                               [0.1, 0.2, 0.3]])))
コード例 #4
0
 def testVariableGradients(self):
     map_values = tf.Variable([0.3, 0.5])
     b = categorical_to_discrete.CategoricalToDiscrete(
         map_values=map_values, validate_args=True)
     with tf.GradientTape() as tape:
         y = tf.reduce_sum(b.forward([0, 1]))
     grads = tape.gradient(y, [map_values])
     self.assertAllNotNone(grads)
コード例 #5
0
 def testModifiedMapValuesIncreasingAssertion(self):
   map_values = tf.Variable([0.1, 0.2])
   b = categorical_to_discrete.CategoricalToDiscrete(map_values=map_values,
                                                     validate_args=True)
   self.evaluate(map_values.initializer)
   with self.assertRaisesOpError('map_values is not strictly increasing.'):
     with tf.control_dependencies([map_values.assign([0.2, 0.1])]):
       self.evaluate(b.forward([0, 1]))
コード例 #6
0
 def testBijectiveAndFinite16bit(self):
     x = np.arange(100).astype(np.int32)
     y = np.logspace(-5, 4, 100).astype(np.float16)
     bijector = categorical_to_discrete.CategoricalToDiscrete(map_values=y)
     bijector_test_util.assert_bijective_and_finite(bijector,
                                                    x,
                                                    y,
                                                    eval_func=self.evaluate,
                                                    event_ndims=0)
コード例 #7
0
 def testBijectorInverseValueNotFoundRaises(self):
     with self.assertRaisesOpError('inverse value not found'):
         bijector = categorical_to_discrete.CategoricalToDiscrete(
             map_values=[0.1, 0.2, 0.3, 0.4], validate_args=True)
         self.evaluate(bijector.inverse([0.21, 0.4]))
コード例 #8
0
 def testBijectorForwardOutOfBoundIndicesRaises(self):
     with self.assertRaisesOpError('indices out of bound'):
         bijector = categorical_to_discrete.CategoricalToDiscrete(
             map_values=[0.1, 0.2, 0.3, 0.4], validate_args=True)
         self.evaluate(bijector.forward([5]))
コード例 #9
0
 def testMapValuesSizeZeroRaises(self):
     with self.assertRaisesWithPredicateMatch(
             ValueError, 'Size of map_values must be greater than 0'):
         bijector = categorical_to_discrete.CategoricalToDiscrete(
             map_values=[], validate_args=True)
         self.evaluate(bijector.map_values)
コード例 #10
0
 def testMapValuesRankNotEqualToOneRaises(self):
     with self.assertRaisesWithPredicateMatch(
             ValueError, 'Rank of map_values must be 1'):
         bijector = categorical_to_discrete.CategoricalToDiscrete(
             map_values=[[1, 2], [3, 4]], validate_args=True)
         self.evaluate(bijector.map_values)
コード例 #11
0
 def testUnsortedValuesRaises(self):
     with self.assertRaisesOpError('map_values is not strictly increasing'):
         bijector = categorical_to_discrete.CategoricalToDiscrete(
             map_values=[1, 3, 2], validate_args=True)
         self.evaluate(bijector.forward([0, 1, 2]))
コード例 #12
0
 def _func(map_values):
     b = categorical_to_discrete.CategoricalToDiscrete(
         map_values=map_values, validate_args=True)
     return tf.reduce_sum(b.forward([0, 1]))