in optimum/quanto/calibrate.py [0:0]
def __torch_function__(self, func, types, args=(), kwargs=None):
kwargs = kwargs if kwargs is not None else {}
qinput = QTensor in types
output = func(*args, **kwargs)
if self.streamline and qinput:
for i, arg in enumerate(args):
module = getattr(arg, "src_module", None)
if module is not None:
if isinstance(output, ActivationQBytesTensor):
# Quantized activations are required for that module
self.modules_qactivations[module] = True
elif isinstance(output, torch.Tensor):
# Quantized activations are not required for that module unless another function requires them
qactivations_required = self.modules_qactivations.get(module, False)
self.modules_qactivations[module] = qactivations_required
return output