self.assertEqual(
dist.logits.dtype, dist.log_prob(np.array(
0, dtype=np.int64)).dtype)
+ for dtype in [dtypes.float16, dtypes.float32, dtypes.float64]:
+ dist = make_categorical([], 5, dtype=dtype)
+ self.assertEqual(dist.dtype, dtype)
+ self.assertEqual(dist.dtype, dist.sample(5).dtype)
def testUnknownShape(self):
with self.test_session():
logits_2d = self.logits
else:
logits_2d = array_ops.reshape(self.logits, [-1, self.event_size])
- draws = random_ops.multinomial(logits_2d, n, seed=seed)
+ sample_dtype = dtypes.int64 if self.dtype.size > 4 else dtypes.int32
+ draws = random_ops.multinomial(
+ logits_2d, n, seed=seed, output_dtype=sample_dtype)
draws = array_ops.reshape(
array_ops.transpose(draws),
array_ops.concat([[n], self.batch_shape_tensor()], 0))