class_docstr: Stochastic Gates with Gaussian distribution.
  
  Stochastic Gates is a practical solution to add L0 norm regularization for neural
  networks. L0 regularization, which explicitly penalizes any present (non-zero)
  parameters, can help network pruning and feature selection, but directly optimizing
  L0 is a non-differentiable combinatorial problem. To surrogate L0, Stochastic Gate
  uses certain continuous probability distributions (e.g., Concrete, Gaussian) with
  hard-sigmoid rectification as a continuous smoothed Bernoulli distribution
  determining the weight of a parameter, i.e., gate. Then L0 is equal to the gates's
  non-zero probability represented by the parameters of the continuous probability
  distribution. The gate value can also be reparameterized to the distribution
  parameters with a noise. So the expected L0 can be optimized through learning
  the distribution parameters via stochastic gradients.
  
  GaussianStochasticGates adopts a gaussian distribution as the smoothed Bernoulli
  distribution of gate. While the smoothed Bernoulli distribution should be
  within 0 and 1, gaussian does not have boundaries. So hard-sigmoid rectification
  is used to "fold" the parts smaller than 0 or larger than 1 back to 0 and 1.
  
  More details can be found in the original paper:
  https://arxiv.org/abs/1810.04247
  
  Examples::
  
      >>> n_params = 5  # number of gates
      >>> stg = GaussianStochasticGates(n_params, reg_weight=0.01)
      >>> inputs = torch.randn(3, n_params)  # mock inputs with batch size of 3
      >>> gated_inputs, reg = stg(mock_inputs)  # gate the inputs
docstr: Get the active probability of each gate, i.e, gate value > 0, in the
  Gaussian distribution
  
  Returns:
      probs (Tensor): probabilities tensor of the gates are active
          in shape(n_gates)
code: def _get_gate_active_probs(self) -> Tensor:
      """
      Get the active probability of each gate, i.e, gate value > 0, in the
      Gaussian distribution
  
      Returns:
          probs (Tensor): probabilities tensor of the gates are active
              in shape(n_gates)
      """
      x = self.mu / self.std
      return 0.5 * (1 + torch.erf(x / math.sqrt(2)))
  
file_path: captum/captum/module/gaussian_stochastic_gates.py
imports: import math
  from typing import Optional
  import torch
  from captum.module.stochastic_gates_base import StochasticGatesBase
  from torch import nn, Tensor
label_desc: Use image node_id 4 for calling the GaussianStochasticGates obj's underlying member method code with example usage: obj._get_gate_active_probs() and returns: unknown