diff options
author | Kevin May <kevin.may@arm.com> | 2022-12-15 10:15:21 +0000 |
---|---|---|
committer | Teresa Charlin <teresa.charlinreyes@arm.com> | 2022-12-15 17:16:12 +0000 |
commit | 5b58e31109f661f70331048e22f8a66934e74d15 (patch) | |
tree | 7ad8f88bf7427a1dd2622b53fcd0b4b8632ee34e /src/backends/tosaCommon/test | |
parent | 3fbad94012ee6b1c6ec8e93d760619b15d98c464 (diff) | |
download | armnn-5b58e31109f661f70331048e22f8a66934e74d15.tar.gz |
IVGCVSW-7170 Add Concat support to TOSA Reference Backend
* Change comment for the unique tensor names in all tosa common operators
Signed-off-by: Kevin May <kevin.may@arm.com>
Change-Id: I247b4b2365d5f0173218c5dfd11fba12d2399959
Diffstat (limited to 'src/backends/tosaCommon/test')
-rw-r--r-- | src/backends/tosaCommon/test/OneToOneMappingTests.cpp | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/src/backends/tosaCommon/test/OneToOneMappingTests.cpp b/src/backends/tosaCommon/test/OneToOneMappingTests.cpp index e74c638ee9..b3ab14a774 100644 --- a/src/backends/tosaCommon/test/OneToOneMappingTests.cpp +++ b/src/backends/tosaCommon/test/OneToOneMappingTests.cpp @@ -56,6 +56,82 @@ TEST_CASE("GetTosaMappingFromLayer_AdditionLayer") basicBlock, inputShape, outputShape, Op_ADD, Attribute_NONE, BaseDescriptor(), LayerType::Addition); } +TEST_CASE("GetTosaMapping_ConcatLayer") +{ + std::vector<armnn::TensorShape> inputTensorShapes = { { 2, 3, 2, 2 }, { 2, 3, 2, 2 } }; + armnn::TensorInfo input0Info(inputTensorShapes[0], DataType::Float32); + armnn::TensorInfo input1Info(inputTensorShapes[1], DataType::Float32); + armnn::TensorInfo outputInfo({ 2, 6, 2, 2 }, DataType::Float32); + + armnn::OriginsDescriptor descriptor; + unsigned int concatAxis = 1; + descriptor.SetConcatAxis(concatAxis); + descriptor = armnn::CreateDescriptorForConcatenation(inputTensorShapes.begin(), + inputTensorShapes.end(), + concatAxis); + + TosaSerializationBasicBlock* basicBlock = + GetTosaMapping(nullptr, LayerType::Concat, {&input0Info,&input1Info}, {&outputInfo}, descriptor); + + std::vector<std::vector<int32_t>> inputShapes = { { 2, 3, 2, 2 }, { 2, 3, 2, 2 }}; + std::vector<std::vector<int32_t>> outputShape = { { 2, 6, 2, 2 } }; + + AssertTosaOneToOneMappingBasicBlock(basicBlock, + inputShapes, + outputShape, + Op_CONCAT, + Attribute_AxisAttribute, + descriptor, + LayerType::Concat); +} + +TEST_CASE("GetTosaMappingFromLayer_ConcatLayer") +{ + IRuntime::CreationOptions options; + IRuntimePtr runtime(IRuntime::Create(options)); + + // Builds up the structure of the network. + INetworkPtr net(INetwork::Create()); + + armnn::OriginsDescriptor descriptor; + unsigned int concatAxis = 1; + descriptor.SetConcatAxis(concatAxis); + std::vector<armnn::TensorShape> inputTensorShapes = { { 2, 3, 2, 2 }, { 2, 3, 2, 2 } }; + descriptor = armnn::CreateDescriptorForConcatenation(inputTensorShapes.begin(), + inputTensorShapes.end(), + concatAxis); + + IConnectableLayer* input0 = net->AddInputLayer(0, "input0"); + IConnectableLayer* input1 = net->AddInputLayer(1, "input1"); + IConnectableLayer* concat = net->AddConcatLayer(descriptor, "concat"); + IConnectableLayer* output = net->AddOutputLayer(0, "output"); + + input0->GetOutputSlot(0).Connect(concat->GetInputSlot(0)); + input1->GetOutputSlot(0).Connect(concat->GetInputSlot(1)); + concat->GetOutputSlot(0).Connect(output->GetInputSlot(0)); + + + TensorInfo inputInfo0 = TensorInfo(inputTensorShapes[0], DataType::Float32, 0.0f, 0, true); + TensorInfo inputInfo1 = TensorInfo(inputTensorShapes[1], DataType::Float32, 0.0f, 0, true); + armnn::TensorInfo outputInfo({ 2, 6, 2, 2 }, DataType::Float32); + + input0->GetOutputSlot(0).SetTensorInfo(inputInfo0); + input1->GetOutputSlot(0).SetTensorInfo(inputInfo1); + concat->GetOutputSlot(0).SetTensorInfo(outputInfo); + + std::vector<std::vector<int32_t>> inputShapes = { { 2, 3, 2, 2 }, { 2, 3, 2, 2 }}; + std::vector<std::vector<int32_t>> outputShape = { { 2, 6, 2, 2 } }; + + TosaSerializationBasicBlock* basicBlock = GetTosaMappingFromLayer(PolymorphicDowncast<Layer*>(concat)); + AssertTosaOneToOneMappingBasicBlock(basicBlock, + inputShapes, + outputShape, + Op_CONCAT, + Attribute_AxisAttribute, + descriptor, + LayerType::Concat); +} + TEST_CASE("GetTosaMapping_ConstantLayer") { TensorInfo outputInfo = TensorInfo({ 1, 2, 4, 2 }, DataType::Float32, 0.0f, 0, true); |