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 `x`

, `y`

and `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 `x`

, `y`

and `z`

with `HMC`

/`NUTS`

and compute their marginals.

I’m guessing the best approach to just sample `x`

, `y`

and `z`

by hand and construct a new instance of `MyClass`

with those values?