From 2c90f75496d2c0210a43f35ddb75f6492dd06490 Mon Sep 17 00:00:00 2001 From: Derek Lamberti Date: Thu, 19 Dec 2019 15:45:35 +0000 Subject: IVGCVSW-4301 Correctly validate reshape for broadcastable inputs Signed-off-by: Derek Lamberti Change-Id: I4db6ea4ed0a192c85f124c4a9ced60b1666a3870 --- 1.2/HalPolicy.cpp | 6 +++--- ConversionUtils.hpp | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/1.2/HalPolicy.cpp b/1.2/HalPolicy.cpp index 2cb84972..4d779c29 100644 --- a/1.2/HalPolicy.cpp +++ b/1.2/HalPolicy.cpp @@ -1300,7 +1300,7 @@ bool HalPolicy::ConvertMaximum(const Operation& operation, const Model& model, C IConnectableLayer* layer = data.m_Network->AddMaximumLayer(); assert(layer != nullptr); - bool isReshapeSupported = BroadcastTensor(input0, input1, outInfo, layer, data); + bool isReshapeSupported = BroadcastTensor(input0, input1, layer, data); if (!isReshapeSupported) { return false; @@ -1355,7 +1355,7 @@ bool HalPolicy::ConvertMinimum(const Operation& operation, const Model& model, C IConnectableLayer* const layer = data.m_Network->AddMinimumLayer(); assert(layer != nullptr); - bool isReshapeSupported = BroadcastTensor(input0, input1, outputInfo, layer, data); + bool isReshapeSupported = BroadcastTensor(input0, input1, layer, data); if (!isReshapeSupported) { return false; @@ -1518,7 +1518,7 @@ bool HalPolicy::ConvertPrelu(const Operation& operation, const Model& model, Con return Fail("%s: AddPreluLayer failed", __func__); } - bool isReshapeSupported = BroadcastTensor(input, alpha, outputInfo, layer, data); + bool isReshapeSupported = BroadcastTensor(input, alpha, layer, data); if (!isReshapeSupported) { return false; diff --git a/ConversionUtils.hpp b/ConversionUtils.hpp index 4e4b4d6b..a342d399 100644 --- a/ConversionUtils.hpp +++ b/ConversionUtils.hpp @@ -236,7 +236,7 @@ armnn::IConnectableLayer& AddReshapeLayer(armnn::INetwork& network, LayerHandleT return *reshapeLayer; } -bool BroadcastTensor(LayerInputHandle& input0, LayerInputHandle& input1, const armnn::TensorInfo& outputInfo, +bool BroadcastTensor(LayerInputHandle& input0, LayerInputHandle& input1, armnn::IConnectableLayer* startLayer, ConversionData& data) { BOOST_ASSERT(startLayer != nullptr); @@ -286,8 +286,8 @@ bool BroadcastTensor(LayerInputHandle& input0, LayerInputHandle& input1, const a IsReshapeSupported, data.m_Backends, isSupported, + smallInfo, reshapedInfo, - outputInfo, reshapeDescriptor); if (!isSupported) { @@ -1584,7 +1584,7 @@ bool ConvertAdd(const Operation& operation, const Model& model, ConversionData& if (endLayer != nullptr) { - bool isReshapeSupported = BroadcastTensor(input0, input1, outputInfo, startLayer, data); + bool isReshapeSupported = BroadcastTensor(input0, input1, startLayer, data); if (!isReshapeSupported) { return false; @@ -2398,7 +2398,7 @@ bool ConvertDiv(const Operation& operation, const Model& model, ConversionData& if (endLayer) { - bool isReshapeSupported = BroadcastTensor(input0, input1, outputInfo, startLayer, data); + bool isReshapeSupported = BroadcastTensor(input0, input1, startLayer, data); if (!isReshapeSupported) { return false; @@ -2974,7 +2974,7 @@ bool ConvertMul(const Operation& operation, const Model& model, ConversionData& if (endLayer != nullptr) { - bool isReshapeSupported = BroadcastTensor(input0, input1, outputInfo, startLayer, data); + bool isReshapeSupported = BroadcastTensor(input0, input1, startLayer, data); if (!isReshapeSupported) { return false; @@ -3183,7 +3183,7 @@ bool ConvertSub(const Operation& operation, const Model& model, ConversionData& if (endLayer) { - bool isReshapeSupported = BroadcastTensor(input0, input1, outputInfo, startLayer, data); + bool isReshapeSupported = BroadcastTensor(input0, input1, startLayer, data); if (!isReshapeSupported) { return false; -- cgit v1.2.1