class_docstr: This kernel correponds to a two-sided Brownion motion (Wiener process):
  
      :math:`k(x,z)=\begin{cases}\sigma^2\min(|x|,|z|),& \text{if } x\cdot z\ge 0\\
      0, & \text{otherwise}. \end{cases}`
  
  Note that the input dimension of this kernel must be 1.
  
  Reference:
  
  [1] `Theory and Statistical Applications of Stochastic Processes`,
  Yuliya Mishura, Georgiy Shevchenko
code: def __init__(self, input_dim, variance=None, active_dims=None):
      if input_dim != 1:
          raise ValueError(
              "Input dimensional for Brownian kernel must be 1."
          )
      super().__init__(input_dim, active_dims)
  
      variance = torch.tensor(1.0) if variance is None else variance
      self.variance = PyroParam(variance, constraints.positive)
  
file_path: pyro/pyro/contrib/gp/kernels/brownian.py
imports: import torch
  from torch.distributions import constraints
  from pyro.contrib.gp.kernels.kernel import Kernel
  from pyro.nn.module import PyroParam
label_desc: Use image node_id 1 to create a new Brownian object from inherited base classes: Kernel with example: obj = Brownian(input_dim, variance, active_dims)