/usr/local/lib64/python3.6/site-packages/torch/include/ATen/core
NameSizeModeActions
boxing/-0755rm
dispatch/-0755rm
op_registration/-0755rm
alias_info.h29860644editdlrm
Array.h7680644editdlrm
ATenGeneral.h450644editdlrm
ATenOpList.h2460644editdlrm
aten_interned_strings.h253890644editdlrm
Backtrace.h590644editdlrm
blob.h54220644editdlrm
builtin_function.h36490644editdlrm
DeprecatedTypeProperties.h37730644editdlrm
DeprecatedTypePropertiesRegistry.h7950644editdlrm
Dict.h131950644editdlrm
Dict_inl.h79960644editdlrm
Dimname.h11880644editdlrm
DimVector.h2470644editdlrm
DistributionsHelper.h125940644editdlrm
Formatting.h9590644editdlrm
function.h21450644editdlrm
functional.h14600644editdlrm
function_schema.h135770644editdlrm
function_schema_inl.h93190644editdlrm
Generator.h49350644editdlrm
grad_mode.h2100644editdlrm
interned_strings.h253320644editdlrm
interned_strings_class.h7700644editdlrm
ivalue.h388230644editdlrm
ivalue_inl.h599630644editdlrm
ivalue_to.h7560644editdlrm
jit_type.h759710644editdlrm
jit_type_base.h65080644editdlrm
LegacyTypeDispatch.h46260644editdlrm
List.h156670644editdlrm
List_inl.h110120644editdlrm
Macros.h440644editdlrm
MT19937RNGEngine.h64100644editdlrm
NamedTensor.h50500644editdlrm
operator_name.h30180644editdlrm
PhiloxRNGEngine.h64960644editdlrm
PythonModeTLS.h4030644editdlrm
qualified_name.h43580644editdlrm
QuantizerBase.h24430644editdlrm
Range.h4180644editdlrm
Reduction.h4610644editdlrm
rref_interface.h11440644editdlrm
Scalar.h290644editdlrm
ScalarType.h330644editdlrm
stack.h60340644editdlrm
Tensor.h17560644editdlrm
TensorAccessor.h102960644editdlrm
TensorBase.h327670644editdlrm
TensorBody.h2475550644editdlrm
TransformationHelper.h69110644editdlrm
typeid.h290644editdlrm
UndefinedTensorImpl.h420644editdlrm
UnsafeFromTH.h7080644editdlrm
VariableHooksInterface.h33120644editdlrm
Variadic.h22570644editdlrm
Vitals.h23050644editdlrm
Edit: /usr/local/lib64/python3.6/site-packages/torch/include/ATen/core/QuantizerBase.h (2443B)
#pragma once #include #include #include namespace at { class Tensor; struct QTensorImpl; struct Quantizer; using ConstQuantizerPtr = const c10::intrusive_ptr&; using QuantizerPtr = c10::intrusive_ptr; /** * Quantizer is the class for storing all the information * that's necessary to perform quantize and dequantize * operation. * * We might have different types of quantization schemes and this is * the base class for all quantizers. * * QTensorImpl will hold a pointer to Quantizer so that we can support * different quantization schemes on Tensor. * * For example, the most common quantization scheme, Affine Quantization, * requires scale and zero_point as parameters, we'll store scale and zero_point * inside the instance and we can use it to quantize a float Tensor or * dequantize a quantized Tensor. * * When you add new types of leaf Quantizer class, please also * make sure to add a corresponding QScheme enum since * they should have one to one mapping. * * Note about intrusive_ptr: * Quantized Tensor holds an intrusive_ptr to Quantizer, and multiple Tensor can * share the same Quantizer. Quantizer should be immutable. */ struct TORCH_API Quantizer : public c10::intrusive_ptr_target { const ScalarType scalar_type_; explicit Quantizer(ScalarType scalar_type) : scalar_type_(scalar_type) {} virtual ~Quantizer(); // Copied from torch/csrc/jit/ir/scope.h QuantizerPtr intrusive_from_this() { c10::raw::intrusive_ptr::incref(this); // we are creating a new pointer // from a raw `this` pointer // so we need to bump the refcount // to account for this ownership return c10::intrusive_ptr::reclaim(this); } /** * Each concrete Quantizer type should have a unique QScheme type. */ virtual QScheme qscheme() const = 0; ScalarType scalar_type() { return scalar_type_; } /** * quantize a float Tensor into a quantized Tensor. */ virtual Tensor quantize(const Tensor& t) = 0; /** * dequantize a quantized Tensor into a float Tensor. */ virtual Tensor dequantize(const Tensor& t) = 0; /** * Compare against `other` for equality. */ virtual bool equalTo(QuantizerPtr other) = 0; }; } // namespace at