diff options
author | Patrik Gustavsson <patrik.gustavsson@arm.com> | 2021-08-17 14:26:38 +0200 |
---|---|---|
committer | Patrik Gustavsson <patrik.gustavsson@arm.com> | 2021-09-03 13:33:01 +0200 |
commit | c74682cfd27eb2c203ce4486e712916c45da9881 (patch) | |
tree | 82ff1cefd0ce06d6072f0b1231802e7afa803b1a /ethosu/vela/tflite_graph_optimiser.py | |
parent | 5e5a7847b8fc1eb261c7561f44585d2f6b524df3 (diff) | |
download | ethos-u-vela-c74682cfd27eb2c203ce4486e712916c45da9881.tar.gz |
TOSA: Support for AVGPOOL, MAXPOOL and CONV2D
Added support for
-AVGPOOL and CONV2D with TFLite correspondence
-MAXPOOL
-additional support for replacing RESCALE ops with avgpool.
No support for breaking down tensors over the
size supported by NPU.
Signed-off-by: Patrik Gustavsson <patrik.gustavsson@arm.com>
Change-Id: I1d2aa50ac30a26283b3e6f1fe88cba1544b7c189
Diffstat (limited to 'ethosu/vela/tflite_graph_optimiser.py')
-rw-r--r-- | ethosu/vela/tflite_graph_optimiser.py | 17 |
1 files changed, 1 insertions, 16 deletions
diff --git a/ethosu/vela/tflite_graph_optimiser.py b/ethosu/vela/tflite_graph_optimiser.py index ff2f5a08..3f743e43 100644 --- a/ethosu/vela/tflite_graph_optimiser.py +++ b/ethosu/vela/tflite_graph_optimiser.py @@ -18,7 +18,6 @@ # to do the traversal of the graph. import math import uuid -from typing import Tuple import numpy as np @@ -31,6 +30,7 @@ from .data_type import DataType from .debug_database import DebugDatabase from .errors import UnsupportedFeatureError from .ethos_u55_regs.ethos_u55_regs import resampling_mode +from .graph_optimiser_util import calc_explicit_padding from .graph_optimiser_util import needed_total_padding from .graph_optimiser_util import set_ifm_ofm_op_shapes from .graph_optimiser_util import set_tensor_equivalence @@ -270,21 +270,6 @@ def fix_sg_input_output(op, arch, nng): return op -def calc_explicit_padding(input_size, stride, filter_size, pad_before, pad_after) -> Tuple[int, int]: - """ - Based on explicit padding provided in a PAD operation, returns the corresponding hardware padding - that provides equivalent results. - """ - total_padding = needed_total_padding(input_size, stride, filter_size) - # The top/left padding can be taken as is from the PAD - output_pad_before = pad_before - # The bottom/right padding might need downward adjustment depending on stride/input size - output_pad_after = pad_after - while output_pad_after > 0 and output_pad_after % stride != (total_padding - pad_before) % stride: - output_pad_after -= 1 - return output_pad_before, output_pad_after - - def calc_padding_and_skirt(padding_type, kernel, input_shape, explicit_padding): k_w, k_h = kernel.dilated_wh() s_x, s_y = kernel.stride |