Hi, I have a simple model where I sample a Gaussian variable x with shape [3, 30, 100] and a Categorical variable q with shape [100] and values in {0, 1, 2}. I want to use q to index x, such that for each of the 100 elements in the -1 dimension of x, the element in the -3 dimension is selected according to the categorical value in q, resulting in a tensor y of shape [30, 100]. Without enumeration, I could achieve this with x[q, :, torch.arange(100)]. But I don’t understand how this would work with enumeration, when q has shape [3, 1, 1, 1]. Any advice?

```
@config_enumerate
def model():
plate_1 = pyro.plate('plate_1', 100, dim=-1)
plate_2 = pyro.plate('plate_2', 30, dim=-2)
plate_3 = pyro.plate('plate_3', 3, dim=-3)
with plate_3, plate_2, plate_1:
x = pyro.sample('x', dist.Normal(0, 1))
with plate_1:
q = pyro.sample('q', dist.Categorical(torch.ones(3)))
# works without enumeration
y = x[q, :, torch.arange(x.shape[-1])].T
def guide():
pass
elbo = TraceEnum_ELBO(max_plate_nesting=3)
elbo.loss(model, guide)
```