Skip to content
This repository was archived by the owner on May 12, 2024. It is now read-only.

Commit d139d6b

Browse files
committed
dynamic range quant
1 parent f032b31 commit d139d6b

File tree

4 files changed

+34
-12
lines changed

4 files changed

+34
-12
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ARG CPVER=cp38
77
ARG OPENVINOVER=2021.4.582
88
ARG OPENVINOROOTDIR=/opt/intel/openvino_2021
99
ARG TENSORRTVER=cuda11.3-trt8.0.1.6-ga-20210626
10-
ARG APPVER=v1.11.7
10+
ARG APPVER=v1.12.0
1111
ARG wkdir=/home/user
1212

1313
# dash -> bash

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,7 @@ usage: tflite2tensorflow
282282
[--model_output_path MODEL_OUTPUT_PATH]
283283
[--output_pb]
284284
[--output_no_quant_float32_tflite]
285+
[--output_dynamic_range_quant_tflite]
285286
[--output_weight_quant_tflite]
286287
[--output_float16_quant_tflite]
287288
[--output_integer_quant_tflite]
@@ -326,6 +327,8 @@ optional arguments:
326327
.pb output switch
327328
--output_no_quant_float32_tflite
328329
float32 tflite output switch
330+
--output_dynamic_range_quant_tflite
331+
dynamic range quant tflite output switch
329332
--output_weight_quant_tflite
330333
weight quant tflite output switch
331334
--output_float16_quant_tflite

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
setup(
1212
name="tflite2tensorflow",
1313
scripts=scripts,
14-
version="1.11.7",
14+
version="1.12.0",
1515
description="Generate saved_model, tfjs, tf-trt, EdgeTPU, CoreML, quantized tflite, ONNX, OpenVINO, Myriad Inference Engine blob and .pb from .tflite.",
1616
long_description=long_description,
1717
long_description_content_type="text/markdown",

tflite2tensorflow/tflite2tensorflow.py

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4778,6 +4778,7 @@ def main():
47784778
parser.add_argument('--model_output_path', type=str, default='saved_model', help='The output folder path of the converted model file')
47794779
parser.add_argument('--output_pb', action='store_true', help='.pb output switch')
47804780
parser.add_argument('--output_no_quant_float32_tflite', action='store_true', help='float32 tflite output switch')
4781+
parser.add_argument('--output_dynamic_range_quant_tflite', action='store_true', help='dynamic quant tflite output switch')
47814782
parser.add_argument('--output_weight_quant_tflite', action='store_true', help='weight quant tflite output switch')
47824783
parser.add_argument('--output_float16_quant_tflite', action='store_true', help='float16 quant tflite output switch')
47834784
parser.add_argument('--output_integer_quant_tflite', action='store_true', help='integer quant tflite output switch')
@@ -4821,6 +4822,7 @@ def main():
48214822
model_output_path = args.model_output_path.rstrip('/')
48224823
output_pb = args.output_pb
48234824
output_no_quant_float32_tflite = args.output_no_quant_float32_tflite
4825+
output_dynamic_range_quant_tflite = args.output_dynamic_range_quant_tflite
48244826
output_weight_quant_tflite = args.output_weight_quant_tflite
48254827
output_float16_quant_tflite = args.output_float16_quant_tflite
48264828
output_integer_quant_tflite = args.output_integer_quant_tflite
@@ -4924,16 +4926,17 @@ def main():
49244926
if output_pb:
49254927
tfv1_flg = True
49264928
if output_no_quant_float32_tflite or \
4927-
output_weight_quant_tflite or \
4928-
output_float16_quant_tflite or \
4929-
output_integer_quant_tflite or \
4930-
output_full_integer_quant_tflite or \
4931-
output_tfjs or \
4932-
output_tftrt or \
4933-
output_coreml or \
4934-
output_edgetpu or \
4935-
output_onnx or \
4936-
output_openvino_and_myriad:
4929+
output_dynamic_range_quant_tflite or \
4930+
output_weight_quant_tflite or \
4931+
output_float16_quant_tflite or \
4932+
output_integer_quant_tflite or \
4933+
output_full_integer_quant_tflite or \
4934+
output_tfjs or \
4935+
output_tftrt or \
4936+
output_coreml or \
4937+
output_edgetpu or \
4938+
output_onnx or \
4939+
output_openvino_and_myriad:
49374940
tfv2_flg = True
49384941

49394942
if tfv1_flg and tfv2_flg:
@@ -5097,6 +5100,22 @@ def main():
50975100
import traceback
50985101
traceback.print_exc()
50995102

5103+
# Dynamic range Quantization - Input/Output=float32
5104+
if output_dynamic_range_quant_tflite:
5105+
try:
5106+
print(f'{Color.REVERCE}Dynamic Range Quantization started{Color.RESET}', '=' * 50)
5107+
converter = tf.lite.TFLiteConverter.from_saved_model(model_output_path)
5108+
converter.optimizations = [tf.lite.Optimize.DEFAULT]
5109+
converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS, tf.lite.OpsSet.SELECT_TF_OPS]
5110+
tflite_model = converter.convert()
5111+
with open(f'{model_output_path}/model_dynamic_range_quant.tflite', 'wb') as w:
5112+
w.write(tflite_model)
5113+
print(f'{Color.GREEN}Dynamic Range Quantization complete!{Color.RESET} - {model_output_path}/model_dynamic_range_quant.tflite')
5114+
except Exception as e:
5115+
print(f'{Color.RED}ERROR:{Color.RESET}', e)
5116+
import traceback
5117+
traceback.print_exc()
5118+
51005119
# Weight Quantization - Input/Output=float32
51015120
if output_weight_quant_tflite:
51025121
try:

0 commit comments

Comments
 (0)