tfmot.quantization.keras.fix_input_output_range
Stay organized with collections
Save and categorize content based on your preferences.
Fix the input and output ranges.
tfmot.quantization.keras.fix_input_output_range(
model,
num_bits=8,
input_min=0.0,
input_max=1.0,
output_min=0.0,
output_max=1.0,
narrow_range=False
)
Example:
model = keras.Sequential([
layers.Dense(10, activation='relu', input_shape=(100,)),
quantize_annotate_layer(layers.Dense(2, activation='sigmoid'))
])
with quantize.quantize_scope():
model = quantize_annotate_model(model)
model = quantize_apply(model)
model = fix_input_output_range(model, num_bits=4,
input_min=0, input_max=15,
output_min=0, output_max=15,
narrow_range=False)
In certain cases, a desired input/output ranges is known and should not be
altered during training. To set these values, use the arguments as follows:
Args |
model
|
A tf.keras Sequential or Functional model which has been quantized.
|
num_bits
|
Number of bits for quantization
|
input_min
|
The lower end of quantization interval for the input.
|
input_max
|
The upper end of quantization interval for the input.
|
output_min
|
The lower end of quantization interval for the output.
|
output_max
|
The upper end of quantization interval for the output.
|
narrow_range
|
In case of 8 bits, narrow_range nudges the quantized range
to be [-127, 127] instead of [-128, 127]. This ensures symmetric
range has 0 as the centre.
|
Returns |
Returns a new tf.keras model fixed input range set to (input_min,
input_max) and fixed output range set to (output_min, output_max).
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2023-05-26 UTC.
[null,null,["Last updated 2023-05-26 UTC."],[],[],null,["# tfmot.quantization.keras.fix_input_output_range\n\n\u003cbr /\u003e\n\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/model-optimization/blob/v0.7.5/tensorflow_model_optimization/python/core/quantization/keras/quantize.py#L559-L658) |\n\nFix the input and output ranges. \n\n tfmot.quantization.keras.fix_input_output_range(\n model,\n num_bits=8,\n input_min=0.0,\n input_max=1.0,\n output_min=0.0,\n output_max=1.0,\n narrow_range=False\n )\n\n#### Example:\n\n model = keras.Sequential([\n layers.Dense(10, activation='relu', input_shape=(100,)),\n quantize_annotate_layer(layers.Dense(2, activation='sigmoid'))\n ])\n with quantize.quantize_scope():\n model = quantize_annotate_model(model)\n model = quantize_apply(model)\n model = fix_input_output_range(model, num_bits=4,\n input_min=0, input_max=15,\n output_min=0, output_max=15,\n narrow_range=False)\n\nIn certain cases, a desired input/output ranges is known and should not be\naltered during training. To set these values, use the arguments as follows:\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `model` | A [`tf.keras`](https://www.tensorflow.org/api_docs/python/tf/keras) Sequential or Functional model which has been quantized. |\n| `num_bits` | Number of bits for quantization |\n| `input_min` | The lower end of quantization interval for the input. |\n| `input_max` | The upper end of quantization interval for the input. |\n| `output_min` | The lower end of quantization interval for the output. |\n| `output_max` | The upper end of quantization interval for the output. |\n| `narrow_range` | In case of 8 bits, narrow_range nudges the quantized range to be \\[-127, 127\\] instead of \\[-128, 127\\]. This ensures symmetric range has 0 as the centre. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| Returns a new [`tf.keras`](https://www.tensorflow.org/api_docs/python/tf/keras) model fixed input range set to (input_min, input_max) and fixed output range set to (output_min, output_max). ||\n\n\u003cbr /\u003e"]]