diff options
Diffstat (limited to 'src/backends/aclCommon/ArmComputeSubgraphUtils.hpp')
-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) |