class_docstr: Given min_val: (R, G, B) and max_val: (R,G,B),
  will normalize each channel of the th.*Tensor to
  the provided min and max values.
  
  Works by calculating :
      a = (max'-min')/(max-min)
  
      b = max' - a * max
  
      new_value = a * value + b
  where min' & max' are given values, 
  and min & max are observed min/max for each channel
  
  :param min_val: (float or integer):
      Lower bound of normalized tensor
  :param max_val: (float or integer):
      Upper bound of normalized tensor
  
  Example:
      >>> x = th.rand(3,5,5)
      >>> rn = RangeNormalize((0,0,10),(1,1,11))
      >>> x_norm = rn(x)
  
  Also works with just one value for min/max:
      >>> x = th.rand(3,5,5)
      >>> rn = RangeNormalize(0,1)
      >>> x_norm = rn(x)
code: def __call__(self, *inputs):
      outputs = []
      idx = None
      for idx, _input in enumerate(inputs):
          _min_val = _input.min()
          _max_val = _input.max()
          a = (self.max_val - self.min_val) / (_max_val - _min_val)
          b = self.max_val - a * _max_val
          _input = _input.mul(a).add(b)
          outputs.append(_input)
      return outputs if idx >= 1 else outputs[0]
  
imports: import os
  import random
  import math
  import numpy
  import torch
label_desc: Use image node_id 2 for calling the RangeNormalize obj's underlying member method code with example usage: obj.__call__() and returns: unknown