Skip to content

Commit

Permalink
U^2-Net bugfixed, tflite,coreml,tfjs,tftrt
Browse files Browse the repository at this point in the history
  • Loading branch information
PINTO0309 committed Nov 2, 2020
1 parent b214aa4 commit e6189e5
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 990 deletions.
46 changes: 46 additions & 0 deletions 061_U-2-Net/01_float32/04_int_fullint_quant.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
### tensorflow==2.3.1

import tensorflow as tf
import numpy as np
import sys
import tensorflow_datasets as tfds

def representative_dataset_gen():
for data in raw_test_data.take(10):
image = data['image'].numpy()
image = tf.image.resize(image, (height, width))
image = image[np.newaxis,:,:,:]
image = image / 127.5 - 1.0
yield [image]

raw_test_data, info = tfds.load(name="coco/2017", with_info=True, split="test", data_dir="~/TFDS", download=False)

height = 480
width = 640

# Integer Quantization - Input/Output=float32
converter = tf.lite.TFLiteConverter.from_saved_model('saved_model_{}x{}'.format(height, width))
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.representative_dataset = representative_dataset_gen
tflite_quant_model = converter.convert()
with open('u2netp_{}x{}_integer_quant.tflite'.format(height, width), 'wb') as w:
w.write(tflite_quant_model)
print('Integer Quantization complete! - u2netp_{}x{}_integer_quant.tflite'.format(height, width))


# # Full Integer Quantization - Input/Output=int8
# converter = tf.lite.TFLiteConverter.from_saved_model('saved_model_{}x{}'.format(height, width))
# converter.optimizations = [tf.lite.Optimize.DEFAULT]
# converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS_INT8]
# converter.inference_input_type = tf.uint8
# converter.inference_output_type = tf.uint8
# converter.representative_dataset = representative_dataset_gen
# tflite_quant_model = converter.convert()
# with open('u2netp_{}x{}_full_integer_quant.tflite'.format(height, width), 'wb') as w:
# w.write(tflite_quant_model)
# print('Integer Quantization complete! - u2netp_{}x{}_full_integer_quant.tflite'.format(height, width))

# # EdgeTPU
# import subprocess
# result = subprocess.check_output(["edgetpu_compiler", "-s", "u2netp_{}x{}_full_integer_quant.tflite".format(height, width)])
# print(result)
35 changes: 35 additions & 0 deletions 061_U-2-Net/01_float32/04_u2net_bin2h5_weight_float16_quant.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/bash

pip3 install openvino2tensorflow --upgrade

openvino2tensorflow \
--model_path openvino/256x256/FP32/u2netp_256x256.xml \
--model_output_path saved_model_256x256 \
--output_saved_model True \
--output_h5 True \
--output_pb True \
--output_no_quant_float32_tflite True \
--output_weight_quant_tflite True \
--output_float16_quant_tflite True


openvino2tensorflow \
--model_path openvino/320x320/FP32/u2netp_320x320.xml \
--model_output_path saved_model_320x320 \
--output_saved_model True \
--output_h5 True \
--output_pb True \
--output_no_quant_float32_tflite True \
--output_weight_quant_tflite True \
--output_float16_quant_tflite True


openvino2tensorflow \
--model_path openvino/480x640/FP32/u2netp_480x640.xml \
--model_output_path saved_model_480x640 \
--output_saved_model True \
--output_h5 True \
--output_pb True \
--output_no_quant_float32_tflite True \
--output_weight_quant_tflite True \
--output_float16_quant_tflite True
Loading

0 comments on commit e6189e5

Please sign in to comment.