Hi, if I have a gaussian probability p1(x), a sigmoid function as another probability p2(x) and a Bernolli probability p3(x), I want to use a q(x) as gaussian to approximate p1(x)*p2(x)*p3(x). How can I do it nice using pyro?

This question doesn’t make a lot of sense. If I understand you correctly, you’re asking how to model a conditionally-independent trivariate distribution, using a gaussian, where one dimension of the trivariate distribution is gaussian, one is a deterministic function, and another is a bernoulli trial. A deterministic site is just a deterministic site so there’s nothing to approximate there, and a bernoulli distribution has support on {0, 1}, not (-oo,oo).

Another possible interpretation of your question is that you have three random variables, call them x, y, and z, and you’re trying to model the product of these three random variables u = xyz as a gaussian? It’s unclear.

Either way, why are you trying to do this? Maybe if you step back and describe your problem in greater depth we can help.

Thank you Dave! Sorry to reply to you so late.

and sorry for don’t give a good description of my question.

I will give a more simple detail example and explain why I want do this.

If set p1(x) is Gaussian N(x1,c1); another Gaussian p2(x) is another Gaussian N(x2,c2).

I want to get the distribution p(x) = p1(x)/p2(x). but don’t know how to approximate the p(x) to q(x) if set q(x) as Gaussian.

This is a fusion problem occur in my project.

I am new to pyro, maybe this question is not very hard to implement in pyro.