aboutsummaryrefslogtreecommitdiff
path: root/src/backends/tosaCommon/test/OneToOneMappingTests.cpp
diff options
context:
space:
mode:
authorCathal Corbett <cathal.corbett@arm.com>2022-12-22 13:09:38 +0000
committerCathal Corbett <cathal.corbett@arm.com>2022-12-23 13:37:25 +0000
commit0bb096d9cd11bec1a890066064c8a28c4a4fd6ee (patch)
treef01cc42856da05e9e3f5af452979136afb045588 /src/backends/tosaCommon/test/OneToOneMappingTests.cpp
parent56fb21ee9fd51038505ef663ef5717df5945f385 (diff)
downloadarmnn-0bb096d9cd11bec1a890066064c8a28c4a4fd6ee.tar.gz
IVGCVSW-7343 Add Transpose support to TOSA Reference Backend
Signed-off-by: Cathal Corbett <cathal.corbett@arm.com> Change-Id: I11505f672349e1f04143edfdc2df8775f685372d
Diffstat (limited to 'src/backends/tosaCommon/test/OneToOneMappingTests.cpp')
-rw-r--r--src/backends/tosaCommon/test/OneToOneMappingTests.cpp58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/backends/tosaCommon/test/OneToOneMappingTests.cpp b/src/backends/tosaCommon/test/OneToOneMappingTests.cpp
index 146a9cba37..4cc37918e5 100644
--- a/src/backends/tosaCommon/test/OneToOneMappingTests.cpp
+++ b/src/backends/tosaCommon/test/OneToOneMappingTests.cpp
@@ -664,6 +664,64 @@ TEST_CASE("GetTosaMappingFromLayer_TransposeConv2dLayer")
LayerType::TransposeConvolution2d);
}
+TEST_CASE("GetTosaMapping_TransposeLayer")
+{
+ TensorInfo inputInfo = TensorInfo({ 1, 1, 5, 3 }, DataType::Float32, 0.0f, 0, true);
+ TensorInfo outputInfo = TensorInfo({ 1, 5, 1, 3 }, DataType::Float32, 0.0f, 0, true);
+
+ std::vector<std::vector<int32_t>> inputShape = {{ 1, 1, 5, 3 }};
+ std::vector<std::vector<int32_t>> outputShape = {{ 1, 5, 1, 3 }};
+
+ TransposeDescriptor transposeDescriptor = TransposeDescriptor({ 0, 2, 1 ,3 });
+
+ TosaSerializationBasicBlock* basicBlock =
+ GetTosaMapping(nullptr, LayerType::Transpose, {&inputInfo,}, {&outputInfo}, transposeDescriptor);
+ AssertTosaOneToOneMappingBasicBlock(basicBlock,
+ inputShape,
+ outputShape,
+ Op_TRANSPOSE,
+ Attribute_TransposeAttribute,
+ transposeDescriptor,
+ LayerType::Transpose);
+}
+
+TEST_CASE("GetTosaMappingFromLayer_TransposeLayer")
+{
+ IRuntime::CreationOptions options;
+ IRuntimePtr runtime(IRuntime::Create(options));
+
+ // Builds up the structure of the network.
+ INetworkPtr net(INetwork::Create());
+
+ TransposeDescriptor transposeDescriptor = TransposeDescriptor({ 0, 2, 1 ,3 });
+
+ IConnectableLayer* input = net->AddInputLayer(0, "input0");
+ IConnectableLayer* transpose = net->AddTransposeLayer(transposeDescriptor, "transpose");
+ IConnectableLayer* output = net->AddOutputLayer(0, "output");
+
+ input->GetOutputSlot(0).Connect(transpose->GetInputSlot(0));
+ transpose->GetOutputSlot(0).Connect(output->GetInputSlot(0));
+
+ TensorInfo inputInfo = TensorInfo({ 1, 1, 5, 3 }, DataType::Float32, 0.0f, 0, true);
+ TensorInfo outputInfo = TensorInfo({ 1, 5, 1, 3 }, DataType::Float32, 0.0f, 0, true);
+
+ input->GetOutputSlot(0).SetTensorInfo(inputInfo);
+ transpose->GetOutputSlot(0).SetTensorInfo(outputInfo);
+
+ std::vector<std::vector<int32_t>> inputShape = {{ 1, 1, 5, 3 }};
+ std::vector<std::vector<int32_t>> outputShape = {{ 1, 5, 1, 3 }};
+
+ TosaSerializationBasicBlock* basicBlock =
+ GetTosaMappingFromLayer(PolymorphicDowncast<Layer*>(transpose));
+ AssertTosaOneToOneMappingBasicBlock(basicBlock,
+ inputShape,
+ outputShape,
+ Op_TRANSPOSE,
+ Attribute_TransposeAttribute,
+ transposeDescriptor,
+ LayerType::Transpose);
+}
+
TEST_CASE("GetTosaMapping_Unimplemented")
{
TosaSerializationBasicBlock* basicBlock =