tvm.relax.op.qdq 源代码
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
"""Relax quantize/dequantize operators"""
from ..expr import Expr
from . import _ffi_api
[文档]
def quantize(data: Expr, scale: Expr, zero_point: Expr, axis: int = -1, out_dtype: str = "int8"):
r"""Quantize op
This operator takes input and produces quantized output. The input tensor can be of any shape.
The output shape is the same as input shape.
Q_output = clamp((round(input_tensor/scale) + zero_point), out_dtype::min, out_dtype::max)
Parameters
----------
data : tvm.relax.Expr
The input tensor to be quantized.
scale : tvm.relax.Expr
The output scale.
zero_point : tvm.relax.Expr
The output zero_point.
axis : int
The channel axis for quantization. Default value is -1 which corresponds to the last axis.
out_dtype : str, optional
The data type of the output tensor.
Returns
-------
result : tvm.relax.Expr
The computed result.
"""
return _ffi_api.quantize(data, scale, zero_point, axis, out_dtype)
[文档]
def dequantize(
data: Expr, scale: Expr, zero_point: Expr, axis: int = -1, out_dtype: str = "float32"
):
r"""Dequantize op
This operator takes input and produces dequantized output. The input tensor can be of any shape.
The output shape is the same as input shape.
output = clamp(scale * (input_tensor - zero_point), out_dtype::min, out_dtype::max)
Parameters
----------
data : tvm.relax.Expr
The input tensor to be dequantized.
scale : tvm.relax.Expr
The input scale.
zero_point : tvm.relax.Expr
The input zero_point.
axis : int
The channel axis for dequantization. Default value is -1 which corresponds to the last axis.
out_dtype : str, optional
The data type of the output tensor.
Returns
-------
result : tvm.relax.Expr
The computed result.
"""
return _ffi_api.dequantize(data, scale, zero_point, axis, out_dtype)