|
30 | 30 | from aesara.sparse.basic import sp_sum |
31 | 31 | from aesara.tensor import gammaln, sigmoid |
32 | 32 | from aesara.tensor.nlinalg import det, eigh, matrix_inverse, trace |
33 | | -from aesara.tensor.random.basic import MultinomialRV, dirichlet, multivariate_normal |
| 33 | +from aesara.tensor.random.basic import dirichlet, multinomial, multivariate_normal |
34 | 34 | from aesara.tensor.random.op import RandomVariable, default_supp_shape_from_params |
35 | 35 | from aesara.tensor.random.utils import broadcast_params, normalize_size_param |
36 | 36 | from aesara.tensor.slinalg import Cholesky |
@@ -490,30 +490,6 @@ def logp(value, a): |
490 | 490 | ) |
491 | 491 |
|
492 | 492 |
|
493 | | -class MultinomialRV(MultinomialRV): |
494 | | - """Aesara's `MultinomialRV` doesn't broadcast; this one does.""" |
495 | | - |
496 | | - @classmethod |
497 | | - def rng_fn(cls, rng, n, p, size): |
498 | | - if n.ndim > 0 or p.ndim > 1: |
499 | | - n, p = broadcast_params([n, p], cls.ndims_params) |
500 | | - size = tuple(size or ()) |
501 | | - |
502 | | - if size: |
503 | | - n = np.broadcast_to(n, size) |
504 | | - p = np.broadcast_to(p, size + (p.shape[-1],)) |
505 | | - |
506 | | - res = np.empty(p.shape) |
507 | | - for idx in np.ndindex(p.shape[:-1]): |
508 | | - res[idx] = rng.multinomial(n[idx], p[idx]) |
509 | | - return res |
510 | | - else: |
511 | | - return rng.multinomial(n, p, size=size) |
512 | | - |
513 | | - |
514 | | -multinomial = MultinomialRV() |
515 | | - |
516 | | - |
517 | 493 | class Multinomial(Discrete): |
518 | 494 | r""" |
519 | 495 | Multinomial log-likelihood. |
|
0 commit comments