Closed
Description
With v4 (see #4463), we move away from Distribution
in favour of aesara's RandomVariable
. The current machinery for generating human-readable str
representations depends on some OOP stuff in Distribution
and subclasses. These string representations were also used in generating GraphViz graphs.
I'm opening this issue to discuss the best way to maintain current str
and graph functionality when moving forward to v4. I'm happy to do the coding, but will need some input from @brandonwillard (and others) first.
For now I have two (probably naive) questions that should hopefully allow me to get this started:
- If I have
x = pm.Normal('x', mu=0, sigma=1.0)
, what is the best way to accessx
's parameters after instantation? Right now (v3) I can just dox.distribution.mu
, but this no longer works whenx
is aTensorVariable
. I know that these parameters areTensorConstant
s somewhere inx
's parent hierarchy, but so far I've not found a convenient way to access them using their parameter names.
2. I saw that there areFound their use in symbolic-pymc I think!_print_name
properties inaesara.tensor.random.basic.NormalRV
etc., but so far these appear unused, is that correct?