From b6b51e36fb0cbdcba77a799a600292741fcd5c93 Mon Sep 17 00:00:00 2001 From: yejianwu Date: Wed, 13 Mar 2019 15:40:28 +0800 Subject: [PATCH] fix python3 support for hexagon, update docs for docker image --- docs/installation/using_docker.rst | 8 ++++---- mace/python/tools/converter_tool/hexagon_converter.py | 10 ++++++---- mace/python/tools/quantization/quantize_util.py | 6 +++--- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/docs/installation/using_docker.rst b/docs/installation/using_docker.rst index 61e929a3..b0c5ac4e 100644 --- a/docs/installation/using_docker.rst +++ b/docs/installation/using_docker.rst @@ -15,18 +15,18 @@ In most cases, the ``lite edition`` image can satisfy developer's basic needs. .. code:: sh - # Pull lite edition docker image + # You can pull lite edition docker image from docker repo (recommended) docker pull registry.cn-hangzhou.aliyuncs.com/xiaomimace/mace-dev-lite - # Build lite edition docker image + # Or build lite edition docker image by yourself docker build -t registry.cn-hangzhou.aliyuncs.com/xiaomimace/mace-dev-lite ./docker/mace-dev-lite - ``full edition`` docker image (which contains multiple NDK versions and other dev tools). .. code:: sh - # Pull full edition docker image + # You can pull full edition docker image from docker repo (recommended) docker pull registry.cn-hangzhou.aliyuncs.com/xiaomimace/mace-dev - # Build full edition docker image + # Or build full edition docker image by yourself docker build -t registry.cn-hangzhou.aliyuncs.com/xiaomimace/mace-dev ./docker/mace-dev .. note:: diff --git a/mace/python/tools/converter_tool/hexagon_converter.py b/mace/python/tools/converter_tool/hexagon_converter.py index 60226ef8..081adde9 100644 --- a/mace/python/tools/converter_tool/hexagon_converter.py +++ b/mace/python/tools/converter_tool/hexagon_converter.py @@ -29,6 +29,8 @@ from mace.python.tools.converter_tool.base_converter import ReduceType from mace.python.tools.convert_util import mace_check from mace.python.tools import graph_util +from six.moves import reduce + HexagonSupportedOps = [ 'BatchToSpaceND_8', @@ -126,9 +128,9 @@ class HexagonConverter(base_converter.ConverterInterface): self.add_input_output_node() if not self._option.check_nodes: - output_name = self._option.output_nodes.values()[0].name + output_name = list(self._option.output_nodes.values())[0].name else: - output_name = self._option.check_nodes.values()[0].name + output_name = list(self._option.check_nodes.values())[0].name output_name = normalize_name(output_name) self._model = graph_util.sort_mace_graph(self._model, output_name) @@ -388,9 +390,9 @@ class HexagonConverter(base_converter.ConverterInterface): output_node = None if not self._option.check_nodes: - output_name = self._option.output_nodes.values()[0].name + output_name = list(self._option.output_nodes.values())[0].name else: - output_name = self._option.check_nodes.values()[0].name + output_name = list(self._option.check_nodes.values())[0].name output_name = normalize_name(output_name) for op in self._model.op: if op.name == output_name: diff --git a/mace/python/tools/quantization/quantize_util.py b/mace/python/tools/quantization/quantize_util.py index 34939387..666b94bd 100644 --- a/mace/python/tools/quantization/quantize_util.py +++ b/mace/python/tools/quantization/quantize_util.py @@ -100,7 +100,7 @@ def cal_multiplier_and_shift(scale): def quantize_with_scale_and_zero(data, scale, zero): - output = np.round(zero + data / scale).astype(int) + output = np.round(zero + data / scale).astype(np.int32) quantized_data = QuantizedData() quantized_data.data = output quantized_data.scale = scale @@ -114,7 +114,7 @@ def quantize(data, non_zero): in_max = np_data.max() scale, zero, out_min, out_max = adjust_range(in_min, in_max, non_zero=non_zero) - output = np.clip((np.round(zero + data / scale).astype(int)), 0, 255) + output = np.clip((np.round(zero + data / scale).astype(np.int32)), 0, 255) quantized_data = QuantizedData() quantized_data.data = output @@ -132,7 +132,7 @@ def quantize_bias_for_hexagon(data): in_max = max_val scale = (in_max - in_min) / 2**32 zero = 0 - output = np.clip((np.round(zero + data / scale).astype(long)), + output = np.clip((np.round(zero + data / scale).astype(np.int64)), -2**31, 2**31 - 1) quantized_data = QuantizedData() -- GitLab