BrownianGenerator#

class deepinv.physics.generator.BrownianGenerator(param_key, T, dt=0.04, sigma=0.75, bound=3.0, **kwargs)[source]#

Bases: TrajectoryGenerator

Generates Brownian motion trajectories.

The trajectory \(p_t\) starts at 0. It is generated as

\[p_{t+1} = p_{t} + \sigma \sqrt{dt} \varepsilon, \quad \varepsilon \sim \mathcal{N}(0, 1),\]

and is reflected at \(\pm\) bound.

Parameters:
  • param_key (str) – name of the generated parameter.

  • T (int) – number of time steps.

  • dt (float) – time between steps in seconds.

  • sigma (float) – diffusion per square-root second.

  • bound (float) – maximum absolute value of the trajectory.


Example:

>>> from deepinv.physics.generator import BrownianGenerator
>>> generator = BrownianGenerator("theta", T=10) + BrownianGenerator("shift", T=10)
>>> generator.step(batch_size=2)["theta"].shape
torch.Size([2, 10])

Examples using BrownianGenerator:#

Motion simulation and motion-compensated reconstruction

Motion simulation and motion-compensated reconstruction