Small illustration is below, but you might find the tests in `test_empirical`

useful. I’m not sure if you will be able to use this distribution freely inside of SVI though. In particular, it won’t work inside plates, since it lacks a `.expand`

method and the `log_prob`

method cannot score batched samples. Currently, this is only being used to hold the results of inference.

```
>>> import torch
>>> from pyro.distributions import Empirical
>>> samples = torch.randn(10, 3, 5)
>>> weights = torch.rand(10).log() # samples aggregated along the leftmost dim
>>> emp = Empirical(samples, weights)
>>> emp.batch_shape
torch.Size([])
>>> emp.event_shape
torch.Size([3, 5])
>>> emp.sample() # shape([3, 5])
tensor([[ 2.5262, 0.2761, 0.7590, -1.2264, 1.7800],
[ 0.3883, 2.0159, -0.1476, -0.0484, 0.8950],
[ 0.6351, -1.5402, -0.2153, -1.7630, -2.9152]])
>>> emp.log_prob(emp.sample()) # shape([])
tensor(-2.6976)
```