I want to use the custom multivariate log density function `logp_alpha`

via `pymc.DensityDist`

in a `pymc`

model.

How can I make `pymc.DensityDist`

work with `logp = logp_alpha`

, a 6-dimensional random variable `alpha`

, the scalar-valued random variable `a`

, an (`numpy.ndarray`

) array `A`

of size `(6,6)`

, and an array `B`

of size `(3,1)`

in the code below?

Running the code leads to the error message

```
TypeError: Cannot convert Type TensorType(float64, ()) (of Variable Alloc.0) into Type TensorType(float64, (6, 6)). You can try to manually convert Alloc.0 into a TensorType(float64, (6, 6)).
```

which seems to indicate that I have to pass the dimensions of `alpha`

(and possibly `A`

and `B`

) to `pymc.DensityDist`

. How can I do that?

```
import pytensor.tensor as pt
import pymc as pm
def logp_alpha(value, a, A, B):
log_det = pt.sum(pt.log(B) - pt.log(a))
C = A / a
logp_alpha_out = 0.5 * log_det - 0.5 * value.T.dot(C).dot(value)
return logp_alpha_out
m = pm.Model()
with m:
a = pm.InverseGamma("a", 1, 0.001)
alpha = pm.DensityDist("alpha", a, A, B, logp = logp_alpha)
with m:
data = pm.sample()
```