Skip to content

Commit

Permalink
[one-cmds] Add save_min_max option to one-quantize (#11853)
Browse files Browse the repository at this point in the history
This adds save_min_max option to one-quantize.

ONE-DCO-1.0-Signed-off-by: Hyukjin Jeong <[email protected]>
  • Loading branch information
jinevening authored Nov 2, 2023
1 parent 87e0691 commit 7a102bc
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
8 changes: 8 additions & 0 deletions compiler/one-cmds/one-quantize
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,12 @@ def _get_parser():
help=
"Force MaxPool Op to have the same input/output quantparams. NOTE: This option can degrade accuracy of some models.)"
)
quantization_group.add_argument(
'--save_min_max',
action='store_true',
help=
"Save min/max of each tensor. NOTE: Min/max valuse are clipped according to calibration algorithms, such as percentile or moving average. Nudge adjustment is not applied."
)
quantization_group.add_argument(
'--quant_config', type=str, help="Path to the quantization configuration file.")
quantization_group.add_argument(
Expand Down Expand Up @@ -518,6 +524,8 @@ def _quantize(args):
circle_quantizer_cmd.append(getattr(args, 'granularity'))
if oneutils.is_valid_attr(args, 'TF-style_maxpool'):
circle_quantizer_cmd.append('--TF-style_maxpool')
if oneutils.is_valid_attr(args, 'save_min_max'):
circle_quantizer_cmd.append('--save_min_max')
if oneutils.is_valid_attr(args, 'input_type'):
circle_quantizer_cmd.append('--input_type')
circle_quantizer_cmd.append(getattr(args, 'input_type'))
Expand Down
46 changes: 46 additions & 0 deletions compiler/one-cmds/tests/one-quantize_024.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/bin/bash

# Copyright (c) 2023 Samsung Electronics Co., Ltd. All Rights Reserved
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

filename_ext="$(basename -- $0)"
filename="${filename_ext%.*}"

trap_err_onexit()
{
echo "${filename_ext} FAILED"
exit 255
}

trap trap_err_onexit ERR

inputfile="./inception_v3.circle"
outputfile="./inception_v3.one-quantize_024.circle"

rm -f ${filename}.log
rm -rf ${outputfile}

# run test without input data
one-quantize \
--quantized_dtype uint8 \
--granularity channel \
--save_min_max \
--input_path ${inputfile} \
--output_path ${outputfile} > ${filename}.log 2>&1

if [[ ! -s "${outputfile}" ]]; then
trap_err_onexit
fi

echo "${filename_ext} SUCCESS"

0 comments on commit 7a102bc

Please sign in to comment.