In PyTorch, Observer modules (docs, code) collect statistics on the input values and calculate the qparams . Different calibration schemes result in different quantized outputs, and it's best to empirically verify which scheme works best for your application and architecture (more on that later).
```python
from torch.quantization.observer import MinMaxObserver, MovingAverageMinMaxObserver, HistogramObserver
C, L = 3, 4
normal = torch.distributions.normal.Normal(0,1)
inputs = [normal.sample((C, L)), normal.sample((C, L))]
print(inputs)
>>>>>
[tensor([[-0.0590,  1.1674,  0.7119, -1.1270],
[-1.3974,  0.5077, -0.5601,  0.0683],
[-0.0929,  0.9473,  0.7159, -0.4574]]]),
tensor([[-0.0236, -0.7599,  1.0290,  0.8914],