diff --git a/tools/common.py b/tools/common.py index 8642ad4a99810e102257997b552957670ec907d7..8b8e74c8242d609416181f43208928ab213b454f 100644 --- a/tools/common.py +++ b/tools/common.py @@ -17,7 +17,6 @@ import hashlib import inspect import re import os - import six diff --git a/tools/converter.py b/tools/converter.py index 172708f89a792df82290564f5712d0cb37386bff..839d16e7e2d3f72467bc299ee7a7a77ecca0cea8 100644 --- a/tools/converter.py +++ b/tools/converter.py @@ -25,14 +25,11 @@ import yaml import sh_commands from enum import Enum -sys.path.insert(0, "tools/python") # noqa from common import * from device import DeviceWrapper, DeviceManager -from utils import config_parser -import convert -import encrypt - -from dana.dana_util import DanaUtil +from python.utils import config_parser +from python import convert +from python import encrypt ################################ # set environment diff --git a/tools/generate_data.py b/tools/generate_data.py index b80f0c20c9964b7e02c04b6d313f55e87a00cc20..6371a17d941052a4703dfd1db554441f8a97081b 100644 --- a/tools/generate_data.py +++ b/tools/generate_data.py @@ -13,9 +13,7 @@ # limitations under the License. import argparse -import sys import numpy as np -import re import common import six diff --git a/tools/layers_validate.py b/tools/layers_validate.py index 8b8b29289dd751c7ddf07f131dbe360283a19eae..534b3441dc6ad98e88f58639748b21557d686908 100644 --- a/tools/layers_validate.py +++ b/tools/layers_validate.py @@ -12,19 +12,21 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + import argparse import copy import os -import sys import yaml -sys.path.insert(0, "tools/python") # noqa -from py_proto import mace_pb2 -from transform.base_converter import ConverterUtil -from transform.base_converter import MaceKeyword -from transform.base_converter import MaceOp -from transform.hexagon_converter import HexagonOp -from utils.util import mace_check +from python.py_proto import mace_pb2 +from python.transform.base_converter import ConverterUtil +from python.transform.base_converter import MaceKeyword +from python.transform.base_converter import MaceOp +from python.transform.hexagon_converter import HexagonOp +from python.utils.util import mace_check def normalize_op_name(name): diff --git a/tools/python/convert.py b/tools/python/convert.py index 24ad303bbdab272f07cce455c3d9c78620154bbb..7ca33a3bfd036d8c2c8a59a4a8332a658810a2f4 100644 --- a/tools/python/convert.py +++ b/tools/python/convert.py @@ -22,20 +22,19 @@ from __future__ import print_function import argparse import sys import numpy as np -import shutil -import tempfile -from utils import config_parser -from utils.config_parser import DataFormat -from utils.config_parser import DeviceType -from utils.config_parser import Platform -from utils import util -from utils.util import mace_check -from utils.config_parser import normalize_model_config -from utils.config_parser import ModelKeys -from py_proto import mace_pb2 -from transform import base_converter as cvt -from transform import transformer -from visualize import visualize_model + +from python.utils import config_parser +from python.utils.config_parser import DataFormat +from python.utils.config_parser import DeviceType +from python.utils.config_parser import Platform +from python.utils import util +from python.utils.util import mace_check +from python.utils.config_parser import normalize_model_config +from python.utils.config_parser import ModelKeys +from python.py_proto import mace_pb2 +from python.transform import base_converter as cvt +from python.transform import transformer +from python.visualize import visualize_model def transpose_shape(shape, dst_order): @@ -162,16 +161,16 @@ def convert_model(conf): print("Transform model to one that can better run on device") platform = conf[ModelKeys.platform] if platform == Platform.TENSORFLOW: - from transform import tensorflow_converter + from python.transform import tensorflow_converter converter = tensorflow_converter.TensorflowConverter( option, conf["model_file_path"]) elif platform == Platform.CAFFE: - from transform import caffe_converter + from python.transform import caffe_converter converter = caffe_converter.CaffeConverter(option, conf["model_file_path"], conf["weight_file_path"]) elif platform == Platform.ONNX: - from transform import onnx_converter + from python.transform import onnx_converter converter = onnx_converter.OnnxConverter(option, conf["model_file_path"]) else: @@ -185,14 +184,14 @@ def convert_model(conf): runtime = conf[ModelKeys.runtime] if runtime in [DeviceType.HEXAGON, DeviceType.HTA]: - from transform import hexagon_converter + from python.transform import hexagon_converter converter = hexagon_converter.HexagonConverter( option, output_graph_def, quantize_activation_info) output_graph_def = converter.run() elif runtime == DeviceType.APU: mace_check(platform == Platform.TENSORFLOW, "apu only support model from tensorflow") - from transform import apu_converter + from python.transform import apu_converter converter = apu_converter.ApuConverter( option, output_graph_def, quantize_activation_info) output_graph_def = converter.run() diff --git a/tools/python/encrypt.py b/tools/python/encrypt.py index 6a28fe2f5deef0ff6ba663fe4eab80e66b2cdde0..ec57a182fce4573857b89686c24bba0a7eb4c6ae 100644 --- a/tools/python/encrypt.py +++ b/tools/python/encrypt.py @@ -21,14 +21,15 @@ import datetime import os import hashlib from jinja2 import Environment, FileSystemLoader -from py_proto import mace_pb2 -from utils import device -from utils import util -from utils.util import mace_check -from utils.util import MaceLogger -from utils import config_parser -from utils.config_parser import CPP_KEYWORDS -from utils.config_parser import ModelKeys + +from python.py_proto import mace_pb2 +from python.utils import device +from python.utils import util +from python.utils.util import mace_check +from python.utils.util import MaceLogger +from python.utils import config_parser +from python.utils.config_parser import CPP_KEYWORDS +from python.utils.config_parser import ModelKeys GENERATED_NAME = set() diff --git a/tools/python/gen_opencl.py b/tools/python/gen_opencl.py index ff82e5289ad7c663686c0bd441e7ed04be60e284..5f9186ed6779604eb6c8c3f46aca8208529c7e2f 100644 --- a/tools/python/gen_opencl.py +++ b/tools/python/gen_opencl.py @@ -22,9 +22,9 @@ import os import struct import numpy as np -from utils import util -from utils.util import MaceLogger -from utils.util import mace_check +from python.utils import util +from python.utils.util import MaceLogger +from python.utils.util import mace_check def generate_opencl_code(binary_file_name, load_func_name, size_func_name, diff --git a/tools/python/py_proto/__init__.py b/tools/python/py_proto/__init__.py index da5f48fd89e22d2dda0494b83a7cb4db378f79aa..a49806917cf757ea4197caa0cae07bff99527676 100644 --- a/tools/python/py_proto/__init__.py +++ b/tools/python/py_proto/__init__.py @@ -17,8 +17,8 @@ from __future__ import division from __future__ import print_function import os -from utils import device -from utils.util import MaceLogger +from python.utils import device +from python.utils.util import MaceLogger cwd = os.path.dirname(__file__) diff --git a/tools/python/quantize/quantize_util.py b/tools/python/quantize/quantize_util.py index bb80e0dc41ddecb6f424cc3e55d112397d67c7c6..9a5b75bb02d877e9d96f5214278b17c876b2653e 100644 --- a/tools/python/quantize/quantize_util.py +++ b/tools/python/quantize/quantize_util.py @@ -19,7 +19,7 @@ from __future__ import print_function import numpy as np import math -from transform.base_converter import DeviceType +from python.transform.base_converter import DeviceType class QuantizedData(object): diff --git a/tools/python/quantize/quantize_util_test.py b/tools/python/quantize/quantize_util_test.py index d963db7298acf5bce67ee077dae8777c22c726ff..8b283ff849c67c3c3198c296c1db016a8f08a5a7 100644 --- a/tools/python/quantize/quantize_util_test.py +++ b/tools/python/quantize/quantize_util_test.py @@ -14,7 +14,7 @@ import unittest import numpy as np -import quantize.quantize_util +import quantize_util class TestQuantize(unittest.TestCase): diff --git a/tools/python/run_model.py b/tools/python/run_model.py index 52e081fae179f612cfff8e701a6f6fbfffe6ac3a..10ea4f6a001be2697c8c3fdf42bd26ab61ad9ca5 100644 --- a/tools/python/run_model.py +++ b/tools/python/run_model.py @@ -22,17 +22,17 @@ import tempfile import shutil import numpy as np -from py_proto import mace_pb2 -from utils import util -from utils import device -from utils import config_parser -from utils.config_parser import DeviceType -from utils.target import Target -from utils.config_parser import ModelKeys -from utils.util import MaceLogger -from utils.util import mace_check -import run_target -import validate +from python.py_proto import mace_pb2 +from python.utils import util +from python.utils import device +from python.utils import config_parser +from python.utils.config_parser import DeviceType +from python.utils.target import Target +from python.utils.config_parser import ModelKeys +from python.utils.util import MaceLogger +from python.utils.util import mace_check +from python import run_target +from python import validate """ Tool for mace_run: diff --git a/tools/python/run_target.py b/tools/python/run_target.py index 0c7f0e52bd1b4df3b857a74445a30a980fa59f9f..12a751e89116e504ac9b3c1c70672505f42c32d0 100644 --- a/tools/python/run_target.py +++ b/tools/python/run_target.py @@ -28,10 +28,10 @@ from __future__ import print_function import argparse import os -from utils import device -from utils import target -from utils import config_parser -from utils import util +from python.utils import device +from python.utils import target +from python.utils import config_parser +from python.utils import util def run_target(target_abi, install_dir, target_obj, device_ids="all"): diff --git a/tools/python/transform/apu_converter.py b/tools/python/transform/apu_converter.py index 12f302ec1752a53117f4855e1bc21e228452cdb1..e36c144de5734ddebe897b73720e149a6ce44fce 100644 --- a/tools/python/transform/apu_converter.py +++ b/tools/python/transform/apu_converter.py @@ -12,23 +12,24 @@ # See the License for the specific language governing permissions and # limitations under the License. -import copy +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + import numpy as np from enum import Enum -from operator import mul -from py_proto import mace_pb2 -from transform import base_converter -from transform.base_converter import ConverterUtil -from transform.base_converter import EltwiseType -from transform.base_converter import MaceKeyword -from transform.base_converter import MaceOp -from transform.base_converter import PaddingMode -from transform.base_converter import PoolingType -from transform.base_converter import ReduceType -from transform.base_converter import DataFormat -from transform.base_converter import FrameworkType -from utils.util import mace_check +from python.py_proto import mace_pb2 +from python.transform import base_converter +from python.transform.base_converter import ConverterUtil +from python.transform.base_converter import EltwiseType +from python.transform.base_converter import MaceKeyword +from python.transform.base_converter import MaceOp +from python.transform.base_converter import PaddingMode +from python.transform.base_converter import PoolingType +from python.transform.base_converter import DataFormat +from python.transform.base_converter import FrameworkType +from python.utils.util import mace_check ApuSupportedOps = [ diff --git a/tools/python/transform/base_converter.py b/tools/python/transform/base_converter.py index 12baa73118fce24917ce469607fe10c1afeb8ab1..b0a2e4ab7dcfebd75af6d4bb48050f0915470dde 100644 --- a/tools/python/transform/base_converter.py +++ b/tools/python/transform/base_converter.py @@ -12,13 +12,15 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function from enum import Enum -from py_proto import mace_pb2 - -from utils.config_parser import DataFormat -from utils.config_parser import DeviceType +from python.py_proto import mace_pb2 +from python.utils.config_parser import DataFormat +from python.utils.config_parser import DeviceType # SAME_LOWER: if the amount of paddings to be added is odd, diff --git a/tools/python/transform/caffe_converter.py b/tools/python/transform/caffe_converter.py index fd75501b737d298186453919733e6852d2feb4f6..b937d411ca7856311301179a845c2edae0667244 100644 --- a/tools/python/transform/caffe_converter.py +++ b/tools/python/transform/caffe_converter.py @@ -12,6 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function import math @@ -19,20 +22,18 @@ import numpy as np import six import google.protobuf.text_format -from py_proto import mace_pb2 -from transform import base_converter -from transform import shape_inference -from transform.base_converter import PoolingType -from transform.base_converter import ActivationType -from transform.base_converter import EltwiseType -from transform.base_converter import FrameworkType -from transform.base_converter import DataFormat -from transform.base_converter import MaceOp -from transform.base_converter import MaceKeyword -from transform.base_converter import ConverterUtil -from utils.util import mace_check - -from py_proto import caffe_pb2 +from python.py_proto import mace_pb2, caffe_pb2 +from python.utils.util import mace_check +from . import base_converter +from . import shape_inference +from .base_converter import PoolingType +from .base_converter import ActivationType +from .base_converter import EltwiseType +from .base_converter import FrameworkType +from .base_converter import DataFormat +from .base_converter import MaceOp +from .base_converter import MaceKeyword +from .base_converter import ConverterUtil caffe_group_str = 'group' caffe_kernel_h_str = 'kernel_h' diff --git a/tools/python/transform/hexagon_converter.py b/tools/python/transform/hexagon_converter.py index a83b7f10b679d0d83df6ad4f5f731ea95bf20e10..0fb428a3f3826daf76369b73d09c82cef1332051 100644 --- a/tools/python/transform/hexagon_converter.py +++ b/tools/python/transform/hexagon_converter.py @@ -16,24 +16,23 @@ from __future__ import absolute_import from __future__ import division from __future__ import print_function - import copy import numpy as np from enum import Enum from operator import mul from functools import reduce -from py_proto import mace_pb2 -from transform import base_converter -from transform.base_converter import ConverterUtil -from transform.base_converter import DeviceType -from transform.base_converter import EltwiseType -from transform.base_converter import MaceKeyword -from transform.base_converter import MaceOp -from transform.base_converter import PaddingMode -from transform.base_converter import PoolingType -from transform.base_converter import ReduceType -from utils.util import mace_check +from python.py_proto import mace_pb2 +from python.utils.util import mace_check +from . import base_converter +from .base_converter import ConverterUtil +from .base_converter import DeviceType +from .base_converter import EltwiseType +from .base_converter import MaceKeyword +from .base_converter import MaceOp +from .base_converter import PaddingMode +from .base_converter import PoolingType +from .base_converter import ReduceType HexagonSupportedOps = [ diff --git a/tools/python/transform/onnx_converter.py b/tools/python/transform/onnx_converter.py index c7d11ab72b2a5280a14c28bca9c0bce7c8cb8b1c..e682b3dd5e1e51814846c07a6c8638f1d88dafe4 100644 --- a/tools/python/transform/onnx_converter.py +++ b/tools/python/transform/onnx_converter.py @@ -12,32 +12,34 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function import sys from enum import Enum import six - -from py_proto import mace_pb2 -from transform import base_converter -from transform.base_converter import PoolingType -from transform.base_converter import PaddingMode -from transform.base_converter import ActivationType -from transform.base_converter import EltwiseType -from transform.base_converter import ReduceType -from transform.base_converter import FrameworkType -from transform.base_converter import RoundMode -from transform.base_converter import DataFormat -from transform.base_converter import MaceOp -from transform.base_converter import MaceKeyword -from transform.base_converter import ConverterUtil -from utils.util import mace_check - import numpy as np +from numbers import Number + +from python.py_proto import mace_pb2 +from . import base_converter +from .base_converter import PoolingType +from .base_converter import PaddingMode +from .base_converter import ActivationType +from .base_converter import EltwiseType +from .base_converter import ReduceType +from .base_converter import FrameworkType +from .base_converter import RoundMode +from .base_converter import DataFormat +from .base_converter import MaceOp +from .base_converter import MaceKeyword +from .base_converter import ConverterUtil +from python.utils.util import mace_check import onnx import onnx.utils from onnx import mapping, numpy_helper, TensorProto -from numbers import Number IS_PYTHON3 = sys.version_info > (3,) @@ -191,9 +193,9 @@ OnnxOpType = Enum('OnnxOpType', onnx_attr_translator = { "axis": lambda x: int(x), "axes": lambda x: [int(a) for a in x], - "dtype": lambda x: data_type.onnx2tf(x), + "dtype": lambda x: onnx_dtype(x), "keepdims": lambda x: bool(x), - "to": lambda x: data_type.onnx2tf(x), + "to": lambda x: onnx_dtype(x), } @@ -567,11 +569,7 @@ class OnnxConverter(base_converter.ConverterInterface): tensor.data_type = mace_pb2.DT_FLOAT tensor.float_data.extend( onnx_tensor.astype(np.float32).flat) - elif data_type == np.int32: - tensor.data_type = mace_pb2.DT_INT32 - tensor.int32_data.extend( - onnx_tensor.astype(np.int32).flat) - elif data_type == np.int64: + elif data_type == np.int32 or data_type == np.int64: tensor.data_type = mace_pb2.DT_INT32 tensor.int32_data.extend( onnx_tensor.astype(np.int32).flat) @@ -668,9 +666,9 @@ class OnnxConverter(base_converter.ConverterInterface): if 'to' in node.attrs: dtype = node.attrs['to'] - if dtype == TensorProto.FLOAT: + if dtype == np.float32 or dtype == np.float64: op.output_type.extend([self._option.data_type]) - elif dtype == TensorProto.INT: + elif dtype == np.int64 or dtype == np.int32: op.output_type.extend([mace_pb2.DT_INT32]) else: mace_check(False, "data type %s not supported" % dtype) @@ -959,7 +957,10 @@ class OnnxConverter(base_converter.ConverterInterface): if len(const_tensor.dims) == 0: value_arg = op.arg.add() value_arg.name = MaceKeyword.mace_scalar_input_str - value_arg.f = const_tensor.float_data[0] + if const_tensor.data_type == mace_pb2.DT_INT32: + value_arg.f = float(const_tensor.int32_data[0]) + elif const_tensor.data_type == mace_pb2.DT_FLOAT: + value_arg.f = const_tensor.float_data[0] value_index_arg = op.arg.add() value_index_arg.name = \ MaceKeyword.mace_scalar_input_index_str @@ -972,7 +973,10 @@ class OnnxConverter(base_converter.ConverterInterface): if len(const_tensor.dims) == 0: value_arg = op.arg.add() value_arg.name = MaceKeyword.mace_scalar_input_str - value_arg.f = const_tensor.float_data[0] + if const_tensor.data_type == mace_pb2.DT_INT32: + value_arg.f = float(const_tensor.int32_data[0]) + elif const_tensor.data_type == mace_pb2.DT_FLOAT: + value_arg.f = const_tensor.float_data[0] value_index_arg = op.arg.add() value_index_arg.name = \ MaceKeyword.mace_scalar_input_index_str diff --git a/tools/python/transform/shape_inference.py b/tools/python/transform/shape_inference.py index e035944d3231094f3dac5707dc775325da02e6be..61db3af3d907a1f4e9bb77bff0715c7bc6e2faf2 100644 --- a/tools/python/transform/shape_inference.py +++ b/tools/python/transform/shape_inference.py @@ -12,18 +12,20 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function import math - import numpy as np import six -from transform.transformer import Transformer -from transform.base_converter import DataFormat -from transform.base_converter import MaceOp -from transform.base_converter import MaceKeyword -from transform.base_converter import ConverterUtil -from utils.util import mace_check +from .transformer import Transformer +from .base_converter import DataFormat +from .base_converter import MaceOp +from .base_converter import MaceKeyword +from .base_converter import ConverterUtil +from python.utils.util import mace_check class ShapeInference(object): @@ -253,7 +255,7 @@ class ShapeInference(object): aspect_ratio = ConverterUtil.get_arg(op, MaceKeyword.mace_aspect_ratio_str).floats # noqa num_prior = len(aspect_ratio) * len(min_size) + len(max_size) - output_shape[2] = num_prior * input_h * input_w * 4 + output_shape[2] = int(num_prior * input_h * input_w * 4) self.add_output_shape(op, [output_shape]) def infer_shape_reshape(self, op): @@ -275,7 +277,7 @@ class ShapeInference(object): output_shape[i] = dim[i] product *= dim[i] if idx != -1: - output_shape[idx] = input_size / product + output_shape[idx] = int(input_size / product) self.add_output_shape(op, [output_shape]) else: output_shape = [] diff --git a/tools/python/transform/tensorflow_converter.py b/tools/python/transform/tensorflow_converter.py index 7f940c1d9104b02440341cebf3a319f65a22969b..3fe61d4778d5e49afb07296b8c96703779adb5e1 100644 --- a/tools/python/transform/tensorflow_converter.py +++ b/tools/python/transform/tensorflow_converter.py @@ -12,27 +12,30 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + import math import numpy as np import six import tensorflow as tf from enum import Enum -from py_proto import mace_pb2 -from transform import base_converter -from transform.base_converter import PoolingType -from transform.base_converter import PaddingMode -from transform.base_converter import ActivationType -from transform.base_converter import EltwiseType -from transform.base_converter import PadType -from transform.base_converter import FrameworkType -from transform.base_converter import ReduceType -from transform.base_converter import DataFormat -from transform.base_converter import MaceOp -from transform.base_converter import MaceKeyword -from transform.base_converter import ConverterUtil -from utils.util import mace_check +from python.py_proto import mace_pb2 +from . import base_converter +from .base_converter import PoolingType +from .base_converter import PaddingMode +from .base_converter import ActivationType +from .base_converter import EltwiseType +from .base_converter import PadType +from .base_converter import FrameworkType +from .base_converter import ReduceType +from .base_converter import DataFormat +from .base_converter import MaceOp +from .base_converter import MaceKeyword +from .base_converter import ConverterUtil +from python.utils.util import mace_check from tensorflow.core.framework import tensor_shape_pb2 from tensorflow.tools.graph_transforms import TransformGraph diff --git a/tools/python/transform/transformer.py b/tools/python/transform/transformer.py index fa0fcb450a21afc72174726f294c3160e5d6bfb8..d374ec46cc28f2bf924c225391fcc6981491807d 100644 --- a/tools/python/transform/transformer.py +++ b/tools/python/transform/transformer.py @@ -12,28 +12,31 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function import re import numpy as np import six -from py_proto import mace_pb2 -from transform import base_converter -from transform.base_converter import ConverterUtil -from transform.base_converter import DataFormat -from transform.base_converter import DeviceType -from transform.base_converter import EltwiseType -from transform.base_converter import FrameworkType -from transform.base_converter import MaceKeyword -from transform.base_converter import MaceOp -from transform.base_converter import MaceFixedDataFormatOps # noqa -from transform.base_converter import MaceTransposableDataFormatOps # noqa -from transform.base_converter import PaddingMode -from transform.base_converter import ReduceType -from transform.base_converter import TransformerRule -from quantize import quantize_util -from utils.util import mace_check +from python.py_proto import mace_pb2 +from . import base_converter +from .base_converter import ConverterUtil +from .base_converter import DataFormat +from .base_converter import DeviceType +from .base_converter import EltwiseType +from .base_converter import FrameworkType +from .base_converter import MaceKeyword +from .base_converter import MaceOp +from .base_converter import MaceFixedDataFormatOps # noqa +from .base_converter import MaceTransposableDataFormatOps # noqa +from .base_converter import PaddingMode +from .base_converter import ReduceType +from .base_converter import TransformerRule +from python.quantize import quantize_util +from python.utils.util import mace_check class Transformer(base_converter.ConverterInterface): @@ -1440,15 +1443,15 @@ class Transformer(base_converter.ConverterInterface): arg.i = 1 elif arg.i == 3: arg.i = 2 - - producer = self._producer[op.input[0]] - input_shape = producer.output_shape[0].dims - if producer.type == MaceOp.FullyConnected.name and \ - len(input_shape) == 2: - axis_arg = ConverterUtil.get_arg( - op, MaceKeyword.mace_axis_str) - if axis_arg.i == 1: - axis_arg.i = 3 + if op.input[0] in self._producer: + producer = self._producer[op.input[0]] + input_shape = producer.output_shape[0].dims + if producer.type == MaceOp.FullyConnected.name and\ + len(input_shape) == 2: + axis_arg = ConverterUtil.get_arg( + op, MaceKeyword.mace_axis_str) + if axis_arg.i == 1: + axis_arg.i = 3 elif op.type == MaceOp.Squeeze.name: for arg in op.arg: diff --git a/tools/python/utils/config_parser.py b/tools/python/utils/config_parser.py index 35de4bd9164313b3c72a2b39e2c132aa9b5ef40b..88497746c114b617caf809a2c71f04fdad7527e2 100644 --- a/tools/python/utils/config_parser.py +++ b/tools/python/utils/config_parser.py @@ -22,9 +22,9 @@ import copy import yaml from enum import Enum -from utils.util import mace_check -from utils.util import MaceLogger -from py_proto import mace_pb2 +from python.utils.util import mace_check +from python.utils.util import MaceLogger +from python.py_proto import mace_pb2 CPP_KEYWORDS = [ 'alignas', 'alignof', 'and', 'and_eq', 'asm', 'atomic_cancel', diff --git a/tools/python/utils/device.py b/tools/python/utils/device.py index 579d70ff284e28cb9ba689cceb399504c07973e1..1813c0ca319371989ec891528be2e48a4aa2b2aa 100644 --- a/tools/python/utils/device.py +++ b/tools/python/utils/device.py @@ -23,7 +23,7 @@ import subprocess import random import tempfile -from utils import util +from python.utils import util def execute(cmd, verbose=True): diff --git a/tools/python/utils/target.py b/tools/python/utils/target.py index 11c972df1b10756306687bfe825145be436501e2..aa37ba6afa7fd7d181aec5cee5aef0dcd467d78e 100644 --- a/tools/python/utils/target.py +++ b/tools/python/utils/target.py @@ -12,8 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -from __future__ import absolute_import -from __future__ import division from __future__ import print_function diff --git a/tools/python/validate.py b/tools/python/validate.py index 7004d2a8c230f1f8ef96c8f88e48064025d562f8..b3d7800822b3c79c8143349111abcddc21ad2b77 100644 --- a/tools/python/validate.py +++ b/tools/python/validate.py @@ -12,15 +12,19 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + import os import os.path import numpy as np import six -from py_proto import mace_pb2 -from utils import util -from utils.config_parser import DataFormat -from utils.config_parser import Platform +from python.py_proto import mace_pb2 +from python.utils import util +from python.utils.config_parser import DataFormat +from python.utils.config_parser import Platform VALIDATION_MODULE = 'VALIDATION' diff --git a/tools/sh_commands.py b/tools/sh_commands.py index 4b02948549faad746e6ef5e6c01ad9d4ae60de6a..85a11f05d43f798ebc21396e8f1a4649f7aef279 100644 --- a/tools/sh_commands.py +++ b/tools/sh_commands.py @@ -21,7 +21,6 @@ import re import sh import struct import sys -import time import platform import six diff --git a/tools/validate.py b/tools/validate.py index 9980a0a92c74a19744f9e0fa4d55722c1ff3849c..0f51c881a458ed8837530d23e05c7d4894afb16d 100644 --- a/tools/validate.py +++ b/tools/validate.py @@ -13,11 +13,9 @@ # limitations under the License. import argparse -import sys import os import os.path import numpy as np -import re import six import common