diff options
author | Teresa Charlin <teresa.charlinreyes@arm.com> | 2021-01-18 18:07:57 +0000 |
---|---|---|
committer | TeresaARM <teresa.charlinreyes@arm.com> | 2021-01-21 17:36:32 +0000 |
commit | d672f5d4386dc0545d2e484ce85b76d53edb6bc9 (patch) | |
tree | 3c836d43cd8396aeb6d8ffee7dfe4ad4b21ed4fb /src/backends/aclCommon | |
parent | 19a1c0347709506c5ad5c1b7f647a5af4a30fba0 (diff) | |
download | armnn-d672f5d4386dc0545d2e484ce85b76d53edb6bc9.tar.gz |
IVGCVSW-5616 Don't fuse activation if quantization parameters are different
Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Change-Id: I6504e922113aa9e397f53e570ebcf47e1f133945
Diffstat (limited to 'src/backends/aclCommon')
-rw-r--r-- | src/backends/aclCommon/ArmComputeSubgraphUtils.hpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/backends/aclCommon/ArmComputeSubgraphUtils.hpp b/src/backends/aclCommon/ArmComputeSubgraphUtils.hpp index 860d88df80..a0fca46330 100644 --- a/src/backends/aclCommon/ArmComputeSubgraphUtils.hpp +++ b/src/backends/aclCommon/ArmComputeSubgraphUtils.hpp @@ -45,6 +45,33 @@ SubgraphView::OutputSlots CreateOutputsFrom(const std::vector<Layer*>& layers) return result; } +bool checkDataTypeInputandOutput(const Layer& layer) +{ + auto inputInfo = layer.GetInputSlot(0).GetConnection()->GetTensorInfo(); + auto outputInfo = layer.GetOutputSlot(0).GetTensorInfo(); + bool sameDataType = (inputInfo.GetDataType() == outputInfo.GetDataType()); + + // Check is same quantization info (same scale and offset) + if (sameDataType) + { + if (IsQuantizedType(inputInfo.GetDataType())) + { + bool sameScale = (inputInfo.GetQuantizationScale() == outputInfo.GetQuantizationScale()); + bool sameOffset = (inputInfo.GetQuantizationOffset() == outputInfo.GetQuantizationOffset()); + + return (sameScale && sameOffset); + } + else + { + return true; + } + } + else + { + return false; + } +} + } // namespace inline void ReportUntouchedLayers(OptimizationViews& optimizationViews, std::map<LayerGuid, Layer*> untouched) |