Yeah, I tried to dig into the observer code to see if I could spot anything. I’m not seeing any usage of reduce range in the actual histogram observer but the underlying observer class has a bit here:
  
      github.com
  
  
    pytorch/pytorch/blob/master/torch/quantization/observer.py#L204

    if custom_quant_min is not None and custom_quant_max is not None:
        initial_quant_min, initial_quant_max = custom_quant_min, custom_quant_max


    qrange_len = initial_quant_max - initial_quant_min + 1
    assert 0 < qrange_len <= 256, \
        "quantization range should be positive and not exceed the maximum bit range (=256)."
    if self.dtype == torch.qint8:
        quant_min, quant_max = -qrange_len // 2, qrange_len // 2 - 1
    else:
        quant_min, quant_max = 0, qrange_len - 1
    if self.reduce_range:
        quant_min, quant_max = quant_min // 2, quant_max // 2
else:
    # Fallback onto default 8-bit qmin and qmax calculation if dynamic range is not used.
    if self.dtype == torch.qint8:
        if self.reduce_range:
            quant_min, quant_max = -64, 63
        else:
            quant_min, quant_max = -128, 127
    elif self.dtype == torch.quint8:
        if self.reduce_range:



  
  
    
    
  
  


None of it looks out of the ordinary although I’m not super familiar with the observer part of the codebase. Having said there, there is:

  
      github.com
  
  
    pytorch/pytorch/blob/master/torch/quantization/observer.py#L121-L124

if reduce_range:
    warnings.warn(
        "Please use quant_min and quant_max to specify the range for observers. \
            reduce_range will be deprecated in a future release of PyTorch."



  
  
    
    
  
  


which indicates it may be on the way out anyway.