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).
|