From 3fbad94012ee6b1c6ec8e93d760619b15d98c464 Mon Sep 17 00:00:00 2001 From: Teresa Charlin Date: Thu, 15 Dec 2022 10:35:37 +0000 Subject: Small fixes in TOSA common and TOSA reference: * alphabetical order, * specify floats * fix order of parameters in convolution operator * fix uninitiated variable in ConvertConstantTensorDataToBuffer Signed-off-by: Teresa Charlin Change-Id: Ic82e6127cac6b94da4c859a284893b838ab248bc --- .../test/Pooling2dEndToEndTestImpl.hpp | 12 ++-- .../tosaCommon/operatorMappings/Conv2dOperator.cpp | 2 +- .../operatorMappings/TosaOperatorUtils.hpp | 2 +- .../tosaCommon/test/OneToOneMappingTests.cpp | 76 +++++++++++----------- .../tosaReference/test/TosaRefEndToEndTests.cpp | 28 ++++---- 5 files changed, 60 insertions(+), 60 deletions(-) diff --git a/src/backends/backendsCommon/test/Pooling2dEndToEndTestImpl.hpp b/src/backends/backendsCommon/test/Pooling2dEndToEndTestImpl.hpp index addd27caca..026dbfd9b6 100644 --- a/src/backends/backendsCommon/test/Pooling2dEndToEndTestImpl.hpp +++ b/src/backends/backendsCommon/test/Pooling2dEndToEndTestImpl.hpp @@ -117,15 +117,15 @@ void AvgPool2dEndToEnd(const std::vector& backends, std::vector expectedOutput; if (padMethod == PaddingMethod::Exclude) { - expectedOutput = { 3 , 3.5 , 4 , - 4.5, 5 , 5.5, - 6 , 6.5, 7 }; + expectedOutput = { 3.f , 3.5f, 4.f , + 4.5f, 5.f , 5.5f, + 6.f , 6.5f, 7.f }; } else { - expectedOutput = { 1.33333, 2.33333, 1.77778, - 3 , 5 , 3.66667, - 2.66667, 4.33333, 3.11111 }; + expectedOutput = { 1.33333f, 2.33333f, 1.77778f, + 3.f , 5.f , 3.66667f, + 2.66667f, 4.33333f, 3.11111f }; } std::map> inputTensorData = { { 0, inputData } }; diff --git a/src/backends/tosaCommon/operatorMappings/Conv2dOperator.cpp b/src/backends/tosaCommon/operatorMappings/Conv2dOperator.cpp index dadd91b227..6fc1678c81 100644 --- a/src/backends/tosaCommon/operatorMappings/Conv2dOperator.cpp +++ b/src/backends/tosaCommon/operatorMappings/Conv2dOperator.cpp @@ -114,7 +114,7 @@ TosaSerializationBasicBlock* ConvertConv2dToTosaOperator(const Layer* layer, static_cast(conv2dDescriptor->m_StrideX)}; std::vector dilation = {static_cast(conv2dDescriptor->m_DilationY), static_cast(conv2dDescriptor->m_DilationX)}; - TosaConvAttribute attribute(pad, dilation, stride, 0, 0, ArmNNToDType(inputs[0]->GetDataType())); + TosaConvAttribute attribute(pad, stride, dilation, 0, 0, ArmNNToDType(inputs[0]->GetDataType())); auto* op = new TosaSerializationOperator(Op_CONV2D, Attribute_ConvAttribute, diff --git a/src/backends/tosaCommon/operatorMappings/TosaOperatorUtils.hpp b/src/backends/tosaCommon/operatorMappings/TosaOperatorUtils.hpp index be2f53e413..dccb29892c 100644 --- a/src/backends/tosaCommon/operatorMappings/TosaOperatorUtils.hpp +++ b/src/backends/tosaCommon/operatorMappings/TosaOperatorUtils.hpp @@ -279,7 +279,7 @@ inline std::string TosaOpToString(Op tosaOp) inline std::vector ConvertConstantTensorDataToBuffer(const std::shared_ptr& tensorHandle) { - tosa_err_t error; + tosa_err_t error = tosa_err_t::TOSA_OK; std::vector uint8Data; auto tensorInfo = tensorHandle->GetTensorInfo(); diff --git a/src/backends/tosaCommon/test/OneToOneMappingTests.cpp b/src/backends/tosaCommon/test/OneToOneMappingTests.cpp index 2b0c1e55c7..e74c638ee9 100644 --- a/src/backends/tosaCommon/test/OneToOneMappingTests.cpp +++ b/src/backends/tosaCommon/test/OneToOneMappingTests.cpp @@ -177,10 +177,10 @@ TEST_CASE("GetTosaMappingFromLayer_Conv2dLayer") basicBlock, inputShape, outputShape, Op_CONV2D, Attribute_ConvAttribute, descriptor, LayerType::Convolution2d); } -TEST_CASE("GetTosaMapping_MaxPool2DLayer") +TEST_CASE("GetTosaMapping_AvgPool2DLayer") { Pooling2dDescriptor descriptor; - descriptor.m_PoolType = PoolingAlgorithm::Max; + descriptor.m_PoolType = PoolingAlgorithm::Average; descriptor.m_PoolWidth = descriptor.m_PoolHeight = 2; descriptor.m_StrideX = descriptor.m_StrideY = 2; descriptor.m_PadLeft = 1; @@ -196,12 +196,17 @@ TEST_CASE("GetTosaMapping_MaxPool2DLayer") std::vector> outputShape = {{ 1, 1, 3, 3 }}; TosaSerializationBasicBlock* basicBlock = - GetTosaMapping(nullptr, LayerType::Pooling2d, {&inputTensorInfo}, {&outputTensorInfo}, descriptor); - AssertTosaOneToOneMappingBasicBlock( - basicBlock, inputShape, outputShape, Op_MAX_POOL2D, Attribute_PoolAttribute, descriptor, LayerType::Pooling2d); + GetTosaMapping(nullptr, LayerType::Pooling2d, {&inputTensorInfo}, {&outputTensorInfo}, descriptor); + AssertTosaOneToOneMappingBasicBlock(basicBlock, + inputShape, + outputShape, + Op_AVG_POOL2D, + Attribute_PoolAttribute, + descriptor, + LayerType::Pooling2d); } -TEST_CASE("GetTosaMappingFromLayer_MaxPool2DLayer") +TEST_CASE("GetTosaMappingFromLayer_AvgPool2DLayer") { IRuntime::CreationOptions options; IRuntimePtr runtime(IRuntime::Create(options)); @@ -210,7 +215,7 @@ TEST_CASE("GetTosaMappingFromLayer_MaxPool2DLayer") INetworkPtr net(INetwork::Create()); Pooling2dDescriptor descriptor; - descriptor.m_PoolType = PoolingAlgorithm::Max; + descriptor.m_PoolType = PoolingAlgorithm::Average; descriptor.m_PoolWidth = descriptor.m_PoolHeight = 2; descriptor.m_StrideX = descriptor.m_StrideY = 2; descriptor.m_PadLeft = 1; @@ -219,11 +224,11 @@ TEST_CASE("GetTosaMappingFromLayer_MaxPool2DLayer") descriptor.m_PadBottom = 1; descriptor.m_PaddingMethod = PaddingMethod::Exclude; - IConnectableLayer* input = net->AddInputLayer(0, "input0"); - IConnectableLayer* pool = net->AddPooling2dLayer(descriptor, "pool"); - IConnectableLayer* output = net->AddOutputLayer(0, "output"); + IConnectableLayer* input0 = net->AddInputLayer(0, "input0"); + IConnectableLayer* pool = net->AddPooling2dLayer(descriptor, "pool"); + IConnectableLayer* output = net->AddOutputLayer(0, "output"); - input->GetOutputSlot(0).Connect(pool->GetInputSlot(0)); + input0->GetOutputSlot(0).Connect(pool->GetInputSlot(0)); pool->GetOutputSlot(0).Connect(output->GetInputSlot(0)); TensorInfo inputTensorInfo({ 1, 1, 4, 4 }, DataType::Float32); @@ -232,19 +237,24 @@ TEST_CASE("GetTosaMappingFromLayer_MaxPool2DLayer") std::vector> inputShape = {{ 1, 1, 4, 4 }}; std::vector> outputShape = {{ 1, 1, 3, 3 }}; - input->GetOutputSlot(0).SetTensorInfo(inputTensorInfo); + input0->GetOutputSlot(0).SetTensorInfo(inputTensorInfo); pool->GetOutputSlot(0).SetTensorInfo(outputTensorInfo); TosaSerializationBasicBlock* basicBlock = - GetTosaMappingFromLayer(PolymorphicDowncast(pool)); - AssertTosaOneToOneMappingBasicBlock( - basicBlock, inputShape, outputShape, Op_MAX_POOL2D, Attribute_PoolAttribute, descriptor, LayerType::Pooling2d); + GetTosaMappingFromLayer(PolymorphicDowncast(pool)); + AssertTosaOneToOneMappingBasicBlock(basicBlock, + inputShape, + outputShape, + Op_AVG_POOL2D, + Attribute_PoolAttribute, + descriptor, + LayerType::Pooling2d); } -TEST_CASE("GetTosaMapping_AvgPool2DLayer") +TEST_CASE("GetTosaMapping_MaxPool2DLayer") { Pooling2dDescriptor descriptor; - descriptor.m_PoolType = PoolingAlgorithm::Average; + descriptor.m_PoolType = PoolingAlgorithm::Max; descriptor.m_PoolWidth = descriptor.m_PoolHeight = 2; descriptor.m_StrideX = descriptor.m_StrideY = 2; descriptor.m_PadLeft = 1; @@ -261,16 +271,11 @@ TEST_CASE("GetTosaMapping_AvgPool2DLayer") TosaSerializationBasicBlock* basicBlock = GetTosaMapping(nullptr, LayerType::Pooling2d, {&inputTensorInfo}, {&outputTensorInfo}, descriptor); - AssertTosaOneToOneMappingBasicBlock(basicBlock, - inputShape, - outputShape, - Op_AVG_POOL2D, - Attribute_PoolAttribute, - descriptor, - LayerType::Pooling2d); + AssertTosaOneToOneMappingBasicBlock( + basicBlock, inputShape, outputShape, Op_MAX_POOL2D, Attribute_PoolAttribute, descriptor, LayerType::Pooling2d); } -TEST_CASE("GetTosaMappingFromLayer_AvgPool2DLayer") +TEST_CASE("GetTosaMappingFromLayer_MaxPool2DLayer") { IRuntime::CreationOptions options; IRuntimePtr runtime(IRuntime::Create(options)); @@ -279,7 +284,7 @@ TEST_CASE("GetTosaMappingFromLayer_AvgPool2DLayer") INetworkPtr net(INetwork::Create()); Pooling2dDescriptor descriptor; - descriptor.m_PoolType = PoolingAlgorithm::Average; + descriptor.m_PoolType = PoolingAlgorithm::Max; descriptor.m_PoolWidth = descriptor.m_PoolHeight = 2; descriptor.m_StrideX = descriptor.m_StrideY = 2; descriptor.m_PadLeft = 1; @@ -288,11 +293,11 @@ TEST_CASE("GetTosaMappingFromLayer_AvgPool2DLayer") descriptor.m_PadBottom = 1; descriptor.m_PaddingMethod = PaddingMethod::Exclude; - IConnectableLayer* input0 = net->AddInputLayer(0, "input0"); - IConnectableLayer* pool = net->AddPooling2dLayer(descriptor, "pool"); - IConnectableLayer* output = net->AddOutputLayer(0, "output"); + IConnectableLayer* input = net->AddInputLayer(0, "input0"); + IConnectableLayer* pool = net->AddPooling2dLayer(descriptor, "pool"); + IConnectableLayer* output = net->AddOutputLayer(0, "output"); - input0->GetOutputSlot(0).Connect(pool->GetInputSlot(0)); + input->GetOutputSlot(0).Connect(pool->GetInputSlot(0)); pool->GetOutputSlot(0).Connect(output->GetInputSlot(0)); TensorInfo inputTensorInfo({ 1, 1, 4, 4 }, DataType::Float32); @@ -301,18 +306,13 @@ TEST_CASE("GetTosaMappingFromLayer_AvgPool2DLayer") std::vector> inputShape = {{ 1, 1, 4, 4 }}; std::vector> outputShape = {{ 1, 1, 3, 3 }}; - input0->GetOutputSlot(0).SetTensorInfo(inputTensorInfo); + input->GetOutputSlot(0).SetTensorInfo(inputTensorInfo); pool->GetOutputSlot(0).SetTensorInfo(outputTensorInfo); TosaSerializationBasicBlock* basicBlock = GetTosaMappingFromLayer(PolymorphicDowncast(pool)); - AssertTosaOneToOneMappingBasicBlock(basicBlock, - inputShape, - outputShape, - Op_AVG_POOL2D, - Attribute_PoolAttribute, - descriptor, - LayerType::Pooling2d); + AssertTosaOneToOneMappingBasicBlock( + basicBlock, inputShape, outputShape, Op_MAX_POOL2D, Attribute_PoolAttribute, descriptor, LayerType::Pooling2d); } TEST_CASE("GetTosaMapping_ReshapeLayer") diff --git a/src/backends/tosaReference/test/TosaRefEndToEndTests.cpp b/src/backends/tosaReference/test/TosaRefEndToEndTests.cpp index 00c0386b51..49f2cb7319 100644 --- a/src/backends/tosaReference/test/TosaRefEndToEndTests.cpp +++ b/src/backends/tosaReference/test/TosaRefEndToEndTests.cpp @@ -45,36 +45,36 @@ TEST_CASE("TosaRefConv2dWithoutBiasEndtoEndTestFloat32") Convolution2dEndToEnd(tosaDefaultBackends, armnn::DataLayout::NHWC, false); } -// Max Pool 2D -TEST_CASE("TosaRefMaxPool2DEndtoEndTestFloat32") +// Average Pool 2D +TEST_CASE("TosaRefAvgPool2DEndtoEndTestFloat32") { - MaxPool2dEndToEnd(tosaDefaultBackends); + AvgPool2dEndToEnd(tosaDefaultBackends); } -TEST_CASE("TosaRefMaxPool2DEndtoEndTestFloat16") +TEST_CASE("TosaRefAvgPool2DEndtoEndTestFloat16") { - MaxPool2dEndToEndFloat16(tosaDefaultBackends); + AvgPool2dEndToEndFloat16(tosaDefaultBackends); } -TEST_CASE("TosaRefMaxPool2DIgnoreValueEndtoEndTestFloat32") +TEST_CASE("TosaRefAvgPool2DIgnoreValueEndtoEndTestFloat32") { - MaxPool2dEndToEnd(tosaDefaultBackends, PaddingMethod::IgnoreValue); + AvgPool2dEndToEnd(tosaDefaultBackends, PaddingMethod::IgnoreValue); } -// Average Pool 2D -TEST_CASE("TosaRefAvgPool2DEndtoEndTestFloat32") +// Max Pool 2D +TEST_CASE("TosaRefMaxPool2DEndtoEndTestFloat32") { - AvgPool2dEndToEnd(tosaDefaultBackends); + MaxPool2dEndToEnd(tosaDefaultBackends); } -TEST_CASE("TosaRefAvgPool2DEndtoEndTestFloat16") +TEST_CASE("TosaRefMaxPool2DEndtoEndTestFloat16") { - AvgPool2dEndToEndFloat16(tosaDefaultBackends); + MaxPool2dEndToEndFloat16(tosaDefaultBackends); } -TEST_CASE("TosaRefAvgPool2DIgnoreValueEndtoEndTestFloat32") +TEST_CASE("TosaRefMaxPool2DIgnoreValueEndtoEndTestFloat32") { - AvgPool2dEndToEnd(tosaDefaultBackends, PaddingMethod::IgnoreValue); + MaxPool2dEndToEnd(tosaDefaultBackends, PaddingMethod::IgnoreValue); } // Reshape -- cgit v1.2.1