# Dequantize

public final class Dequantize

Dequantize the 'input' tensor into a float or bfloat16 Tensor.

[min_range, max_range] are scalar floats that specify the range for the output. The 'mode' attribute controls exactly which calculations are used to convert the float values to their quantized equivalents.

In 'MIN_COMBINED' mode, each value of the tensor will undergo the following:

``````if T == qint8: in[i] += (range(T) + 1)/ 2.0
out[i] = min_range + (in[i]* (max_range - min_range) / range(T))
``````
here `range(T) = numeric_limits ::max() - numeric_limits ::min()`

MIN_COMBINED Mode Example

If the input comes from a QuantizedRelu6, the output type is quint8 (range of 0-255) but the possible range of QuantizedRelu6 is 0-6. The min_range and max_range values are therefore 0.0 and 6.0. Dequantize on quint8 will take each value, cast to float, and multiply by 6 / 255. Note that if quantizedtype is qint8, the operation will additionally add each value by 128 prior to casting.

If the mode is 'MIN_FIRST', then this approach is used:

``````num_discrete_values = 1 << (# of bits in T)
range_adjust = num_discrete_values / (num_discrete_values - 1)
range = (range_max - range_min) * range_adjust
range_scale = range / num_discrete_values
const double offset_input = static_cast<double>(input) - lowest_quantized;
result = range_min + ((input - numeric_limits<T>::min()) * range_scale)
``````
If the mode is `SCALED`, dequantization is performed by multiplying each input value by a scaling_factor. (Thus an input of 0 always maps to 0.0).

The scaling_factor is determined from `min_range`, `max_range`, and `narrow_range` in a way that is compatible with `QuantizeAndDequantize{V2|V3}` and `QuantizeV2`, using the following algorithm:

``````const int min_expected_T = std::numeric_limits<T>::min() +
(narrow_range ? 1 : 0);
const int max_expected_T = std::numeric_limits<T>::max();
const float max_expected_T = std::numeric_limits<float>::max();

const float scale_factor =
(std::numeric_limits<T>::min() == 0) ? (max_range / max_expected_T)
: std::max(min_range / min_expected_T,
max_range / max_expected_T);
``````

### Nested Classes

 class Dequantize.Options Optional attributes for ``` Dequantize ```

### Constants

 String OP_NAME The name of this op, as known by TensorFlow core engine

### Public Methods

 Output () Returns the symbolic handle of the tensor. static Dequantize.Options (Long axis) static Dequantize ( Scope scope, Operand input, Operand < TFloat32 > minRange, Operand < TFloat32 > maxRange, Class dtype, Options... options) Factory method to create a class wrapping a new Dequantize operation. static Dequantize < TFloat32 > ( Scope scope, Operand input, Operand < TFloat32 > minRange, Operand < TFloat32 > maxRange, Options... options) Factory method to create a class wrapping a new Dequantize operation using default output types. static Dequantize.Options (String mode) static Dequantize.Options (Boolean narrowRange) Output ()

## Constants

#### public static final String OP_NAME

The name of this op, as known by TensorFlow core engine

Constant Value: "Dequantize"

## Public Methods

#### public Output <U> asOutput ()

Returns the symbolic handle of the tensor.

Inputs to TensorFlow operations are outputs of another TensorFlow operation. This method is used to obtain a symbolic handle that represents the computation of the input.

#### public static Dequantize <U> create ( Scope scope, Operand <? extends TType > input, Operand < TFloat32 > minRange, Operand < TFloat32 > maxRange, Class<U> dtype, Options... options)

Factory method to create a class wrapping a new Dequantize operation.

##### Parameters
 scope current scope The minimum scalar value possibly produced for the input. The maximum scalar value possibly produced for the input. Type of the output tensor. Currently Dequantize supports float and bfloat16. If 'dtype' is 'bfloat16', it only supports 'MIN_COMBINED' mode. carries optional attributes values
##### Returns
• a new instance of Dequantize

#### public static Dequantize < TFloat32 > create ( Scope scope, Operand <? extends TType > input, Operand < TFloat32 > minRange, Operand < TFloat32 > maxRange, Options... options)

Factory method to create a class wrapping a new Dequantize operation using default output types.

##### Parameters
 scope current scope The minimum scalar value possibly produced for the input. The maximum scalar value possibly produced for the input. carries optional attributes values
##### Returns
• a new instance of Dequantize

#### public Output <U> output ()

[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }]
[{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }]