class_docstr: Distribution-based neural (or range) augmentation. This class samples the augmentation parameters
  from a specified distribution with learnable range.
  
  See `neural (or range) augmentation <https://arxiv.org/abs/2212.10553>`_ paper for details.
class_docstr_tok: ["Distribution-based","neural","(","or","range",")","augmentation",".","This","class","samples","the","augmentation","parameters","from","a","specified","distribution","with","learnable","range",".","See","`","neural","(","or","range",")","augmentation","<","https",":","\/\/arxiv.org\/abs\/2212.10553",">","`","_","paper","for","details","."]
code: def _build_aug_fns_with_uniform_dist(self, opts) -> List:
      # need to define the learnable parameters in a way that are compatible with bucketing
      aug_fns = []
      if getattr(opts, "model.learn_augmentation.brightness", False):
          self.brightness = UniformSampler(
              low=0.5,
              high=1.5,
              min_fn=Clip(min_val=0.1, max_val=0.9),
              max_fn=Clip(min_val=1.1, max_val=10.0),
          )
          aug_fns.append(self._apply_brightness)
  
      if getattr(opts, "model.learn_augmentation.contrast", False):
          self.contrast = UniformSampler(
              low=0.5,
              high=1.5,
              min_fn=Clip(min_val=0.1, max_val=0.9),
              max_fn=Clip(min_val=1.1, max_val=10.0),
          )
          aug_fns.append(self._apply_contrast)
  
      if getattr(opts, "model.learn_augmentation.noise", False):
          self.noise = UniformSampler(
              low=0.0,
              high=0.1,
              min_fn=Clip(min_val=0.0, max_val=0.00005),
              max_fn=Clip(min_val=0.0001, max_val=1.0),
          )
          aug_fns.append(self._apply_noise)
  
      return aug_fns
  
imports: import argparse
  import random
  from typing import List, Optional
  import torch
  from torch import Tensor, nn
  from cvnets.misc.common import parameter_list
  from cvnets.neural_augmentor.utils.neural_aug_utils import Clip, FixedSampler, UniformSampler, random_brightness, random_contrast, random_noise
  from utils import logger
label_desc: Use image node_id 2 for calling the DistributionNeuralAugmentor obj's underlying member method code with example usage: obj._build_aug_fns_with_uniform_dist(opts) and returns: aug_fns