# tensorflow::ops::FakeQuantWithMinMaxVars Class Reference

# tensorflow::
ops::
FakeQuantWithMinMaxVars

`
#include <array_ops.h>
`


Fake-quantize the 'inputs' tensor of type float via global float scalars.

## Summary


Fake-quantize the
`
inputs
`
tensor of type float via global float scalars
`
min
`
and
`
max
`
to
`
outputs
`
tensor of same shape as
`
inputs
`
.


Attributes


- `
  [min; max]
  ` define the clamping range for the `
  inputs
  ` data.
- `
  inputs
  ` values are quantized into the quantization range ( `
  [0; 2^num_bits - 1]
  ` when `
  narrow_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.

<br />


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
  ` and `
  max_adj = max - min
  ` .
- If `
  min < max < 0
  ` : `
  min_adj = min - max
  ` and `
  max_adj = 0
  ` .
- If `
  min <= 0 <= max
  ` : `
  scale = (max - min) / (2^num_bits - 1)
  ` , `
  min_adj = scale * round(min / scale)
  ` and `
  max_adj = max + min_adj - min
  ` .

<br />


This operation has a gradient and thus allows for training
`
min
`
and
`
max
`
values.


Args:

- scope: A [Scope](https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object

<br />


Returns:

- `
  https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output
  ` : The outputs tensor.

<br />

| ### Constructors and Destructors ||
|---|---|
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/fake-quant-with-min-max-vars#classtensorflow_1_1ops_1_1_fake_quant_with_min_max_vars_1a00ee58aabd6226983d344471c6956521 (const :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope & scope, :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input inputs, :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input min, :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input max) ` ||
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/fake-quant-with-min-max-vars#classtensorflow_1_1ops_1_1_fake_quant_with_min_max_vars_1a86e17a607800b4a82880a67535ed4395 (const :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope & scope, :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input inputs, :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input min, :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input max, const https://www.tensorflow.org/versions/r2.5/api_docs/cc/struct/tensorflow/ops/fake-quant-with-min-max-vars/attrs#structtensorflow_1_1ops_1_1_fake_quant_with_min_max_vars_1_1_attrs & attrs) ` ||

| ### Public attributes ||
|---|---|
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/fake-quant-with-min-max-vars#classtensorflow_1_1ops_1_1_fake_quant_with_min_max_vars_1af7b295d43fd540e49c6a4e1621d8ed30 ` | ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation ` |
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/fake-quant-with-min-max-vars#classtensorflow_1_1ops_1_1_fake_quant_with_min_max_vars_1a9fc018d2523132a82d3e60c8e7dc465f ` | ` :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output ` |

| ### Public functions ||
|---|---|
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/fake-quant-with-min-max-vars#classtensorflow_1_1ops_1_1_fake_quant_with_min_max_vars_1a1d4aaa7a38907c46fc2ea3372028d94c () const ` | ` ::tensorflow::Node * ` |
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/fake-quant-with-min-max-vars#classtensorflow_1_1ops_1_1_fake_quant_with_min_max_vars_1a384ba596b1a4aebcb314a87e7411fd62 () const ` | ` ` |
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/fake-quant-with-min-max-vars#classtensorflow_1_1ops_1_1_fake_quant_with_min_max_vars_1ac698bada55ee29951a83182f80ee6395 () const ` | ` ` |

| ### Public static functions ||
|---|---|
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/fake-quant-with-min-max-vars#classtensorflow_1_1ops_1_1_fake_quant_with_min_max_vars_1aee3dc1525e2c3837ac1b66757ec20823 (bool x) ` | ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/struct/tensorflow/ops/fake-quant-with-min-max-vars/attrs#structtensorflow_1_1ops_1_1_fake_quant_with_min_max_vars_1_1_attrs ` |
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/fake-quant-with-min-max-vars#classtensorflow_1_1ops_1_1_fake_quant_with_min_max_vars_1a08eae0ee7977569586e1a3fadb261b95 (int64 x) ` | ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/struct/tensorflow/ops/fake-quant-with-min-max-vars/attrs#structtensorflow_1_1ops_1_1_fake_quant_with_min_max_vars_1_1_attrs ` |

| ### Structs ||
|---|---|
| [tensorflow:: ops:: FakeQuantWithMinMaxVars:: Attrs](https://www.tensorflow.org/versions/r2.5/api_docs/cc/struct/tensorflow/ops/fake-quant-with-min-max-vars/attrs) | Optional attribute setters for [FakeQuantWithMinMaxVars](https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/fake-quant-with-min-max-vars#classtensorflow_1_1ops_1_1_fake_quant_with_min_max_vars) . |

## Public attributes

### operation

```
Operation operation
```

### outputs

```
::tensorflow::Output outputs
```

## Public functions

### FakeQuantWithMinMaxVars

```
 FakeQuantWithMinMaxVars(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input inputs,
  ::tensorflow::Input min,
  ::tensorflow::Input max
)
```

### FakeQuantWithMinMaxVars

```
 FakeQuantWithMinMaxVars(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input inputs,
  ::tensorflow::Input min,
  ::tensorflow::Input max,
  const FakeQuantWithMinMaxVars::Attrs & attrs
)
```

### node

```
::tensorflow::Node * node() const 
```

### operator::tensorflow::Input

```
 operator::tensorflow::Input() const 
```

### operator::tensorflow::Output

```
 operator::tensorflow::Output() const 
```

## Public static functions

### NarrowRange

```
Attrs NarrowRange(
  bool x
)
```

### NumBits

```
Attrs NumBits(
  int64 x
)
```