The “likelihood” variables are stored in the data arg to Inference. If it differs for different cases, I imagine you’ll have to try to detect that during inputs and raise an error; or otherwise just note it in the implemented docstrings.
Yes that’s correct. One builds - E [ log p(x | z) ] + KL (q(z) || p(z)) and the other builds - E [ log p(x | z) + log p(z) - log q(z)].