tensorflow:: ops:: FakeQuantWithMinMaxArgs
#include <array_ops.h>
Fake-quantize the 'inputs' tensor, type float to 'outputs' tensor of same shape and type.
Summary
Quantization is called fake since the output is still in floating point. The API converts inputs into values within the range [min and max] and returns as output.
Attributes
[min; max]
define the clamping range for theinputs
data.inputs
values are quantized into the quantization range ([0; 2^num_bits - 1]
whennarrow_range
is false and[1; 2^num_bits - 1]
when it is true) and then de-quantized and output as floats in[min; max]
interval.num_bits
is the bitwidth of the quantization; between 2 and 16, inclusive.
Before quantization, min
and max
values are adjusted with the following logic. It is suggested to have min <= 0 <= max
. If 0
is not in the range of values, the behavior can be unexpected:
- If
0 < min < max
:min_adj = 0
andmax_adj = max - min
. - If
min < max < 0
:min_adj = min - max
andmax_adj = 0
. - If
min <= 0 <= max
:scale = (max - min) / (2^num_bits - 1)
,min_adj = scale * round(min / scale)
andmax_adj = max + min_adj - min
.
Examples
inp = tf.constant ([10.03, -10.23, 3]) out = tf.quantization.fake_quant_with_min_max_args(inp, min=-5, max=5, num_bits=16) print(out)
# Output: # tf.Tensor([ 4.9999237 -5.0000763 3.0000763], shape=(3,), dtype=float32)
Raises:
- InvalidArgumentError:
- If num_bits are outside of range [2, 16].
- If min >= max.
- ValueError: If
inputs
are of any other type than float32.
Args:
- scope: A Scope object
Returns:
Output
: The outputs tensor.
Constructors and Destructors |
|
---|---|
FakeQuantWithMinMaxArgs(const ::tensorflow::Scope & scope, ::tensorflow::Input inputs)
|
|
FakeQuantWithMinMaxArgs(const ::tensorflow::Scope & scope, ::tensorflow::Input inputs, const FakeQuantWithMinMaxArgs::Attrs & attrs)
|
Public attributes |
|
---|---|
operation
|
|
outputs
|
Public functions |
|
---|---|
node() const
|
::tensorflow::Node *
|
operator::tensorflow::Input() const
|
|
operator::tensorflow::Output() const
|
|
Public static functions |
|
---|---|
Max(float x)
|
|
Min(float x)
|
|
NarrowRange(bool x)
|
|
NumBits(int64 x)
|
Structs |
|
---|---|
tensorflow:: |
Optional attribute setters for FakeQuantWithMinMaxArgs. |
Public attributes
operation
Operation operation
outputs
::tensorflow::Output outputs
Public functions
FakeQuantWithMinMaxArgs
FakeQuantWithMinMaxArgs( const ::tensorflow::Scope & scope, ::tensorflow::Input inputs )
FakeQuantWithMinMaxArgs
FakeQuantWithMinMaxArgs( const ::tensorflow::Scope & scope, ::tensorflow::Input inputs, const FakeQuantWithMinMaxArgs::Attrs & attrs )
node
::tensorflow::Node * node() const
operator::tensorflow::Input
operator::tensorflow::Input() const
operator::tensorflow::Output
operator::tensorflow::Output() const
Public static functions
Max
Attrs Max( float x )
Min
Attrs Min( float x )
NarrowRange
Attrs NarrowRange( bool x )
NumBits
Attrs NumBits( int64 x )