Let’s say I have pytorch module like this:
class MyClass(nn.Module): def __init__(self, x, y, z): super(MyClass, self).__init__() self.x = nn.Parameter(x.clone().detach()) self.y = nn.Parameter(y.clone().detach()) self.z = nn.Parameter(z.clone().detach()) def model(self, obs): # Evaluate some complicated stochastic function
I want to lift this and generate new instances with randomly sampled values for
z. However, the PDFs for the variables are dependent. If they were independent, I would use
pyro.random_module, but I don’t see a way to apply that here. What’s a good way to go about doing this?
Also, I would later like to use the
model with some observations to sample from the posterior for
NUTS and compute their marginals.
I’m guessing the best approach to just sample
z by hand and construct a new instance of
MyClass with those values?