dingo-gw / dingo

Dingo: Deep inference for gravitational-wave observations
MIT License
55 stars 19 forks source link

added support for 1 detector networks #231

Closed nihargupte-ph closed 6 months ago

nihargupte-ph commented 11 months ago

This pull request enables support for 1 detector networks.

There are two current issues with one detector flows for Dingo.

1). https://github.com/dingo-gw/dingo/issues/216. Summarized, there is an issue when using a coupling layer with a 1D distribution with no context as there is no input to the neural network. This causes nflows to error out.

This PR fixes this by using an autoregressive flow to learn the 1D density of GNPE samples.

2). Currently, there is no way to pass no context during gibbs sampling

There is a simple fix to this which is in lines 503 of dingo.core.samplers.py.

This PR fixes the issues. It has been tested on GW190620 which is a L1 only event. It achieves a sample efficiency of 6.57% with 32_000 effective samples in this case.

stephengreen commented 6 months ago

In testing, I noticed a bug in the Injection class, where the random injection had different datatypes (float or np.float64) for different parameters. I'm not sure why this occurred, but likely it comes from Bilby. I am now casting to float.

If some parameters were complex, this would cause a problem, but I don't believe that is ever the case.