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 <teresa.charlinreyes@arm.com>
Change-Id: Ic82e6127cac6b94da4c859a284893b838ab248bc
diff --git a/src/backends/tosaCommon/test/OneToOneMappingTests.cpp b/src/backends/tosaCommon/test/OneToOneMappingTests.cpp
index 2b0c1e5..e74c638 100644
--- a/src/backends/tosaCommon/test/OneToOneMappingTests.cpp
+++ b/src/backends/tosaCommon/test/OneToOneMappingTests.cpp
@@ -177,6 +177,80 @@
basicBlock, inputShape, outputShape, Op_CONV2D, Attribute_ConvAttribute, descriptor, LayerType::Convolution2d);
}
+TEST_CASE("GetTosaMapping_AvgPool2DLayer")
+{
+ Pooling2dDescriptor descriptor;
+ descriptor.m_PoolType = PoolingAlgorithm::Average;
+ descriptor.m_PoolWidth = descriptor.m_PoolHeight = 2;
+ descriptor.m_StrideX = descriptor.m_StrideY = 2;
+ descriptor.m_PadLeft = 1;
+ descriptor.m_PadRight = 1;
+ descriptor.m_PadTop = 1;
+ descriptor.m_PadBottom = 1;
+ descriptor.m_PaddingMethod = PaddingMethod::Exclude;
+
+ TensorInfo inputTensorInfo({ 1, 1, 4, 4 }, DataType::Float32);
+ TensorInfo outputTensorInfo({ 1, 1, 3, 3 }, DataType::Float32);
+
+ std::vector<std::vector<int32_t>> inputShape = {{ 1, 1, 4, 4 }};
+ std::vector<std::vector<int32_t>> outputShape = {{ 1, 1, 3, 3 }};
+
+ TosaSerializationBasicBlock* basicBlock =
+ GetTosaMapping(nullptr, LayerType::Pooling2d, {&inputTensorInfo}, {&outputTensorInfo}, descriptor);
+ AssertTosaOneToOneMappingBasicBlock(basicBlock,
+ inputShape,
+ outputShape,
+ Op_AVG_POOL2D,
+ Attribute_PoolAttribute,
+ descriptor,
+ LayerType::Pooling2d);
+}
+
+TEST_CASE("GetTosaMappingFromLayer_AvgPool2DLayer")
+{
+ IRuntime::CreationOptions options;
+ IRuntimePtr runtime(IRuntime::Create(options));
+
+ // Builds up the structure of the network.
+ INetworkPtr net(INetwork::Create());
+
+ Pooling2dDescriptor descriptor;
+ descriptor.m_PoolType = PoolingAlgorithm::Average;
+ descriptor.m_PoolWidth = descriptor.m_PoolHeight = 2;
+ descriptor.m_StrideX = descriptor.m_StrideY = 2;
+ descriptor.m_PadLeft = 1;
+ descriptor.m_PadRight = 1;
+ descriptor.m_PadTop = 1;
+ 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");
+
+ input0->GetOutputSlot(0).Connect(pool->GetInputSlot(0));
+ pool->GetOutputSlot(0).Connect(output->GetInputSlot(0));
+
+ TensorInfo inputTensorInfo({ 1, 1, 4, 4 }, DataType::Float32);
+ TensorInfo outputTensorInfo({ 1, 1, 3, 3 }, DataType::Float32);
+
+ std::vector<std::vector<int32_t>> inputShape = {{ 1, 1, 4, 4 }};
+ std::vector<std::vector<int32_t>> outputShape = {{ 1, 1, 3, 3 }};
+
+ input0->GetOutputSlot(0).SetTensorInfo(inputTensorInfo);
+ pool->GetOutputSlot(0).SetTensorInfo(outputTensorInfo);
+
+ TosaSerializationBasicBlock* basicBlock =
+ GetTosaMappingFromLayer(PolymorphicDowncast<Layer*>(pool));
+ AssertTosaOneToOneMappingBasicBlock(basicBlock,
+ inputShape,
+ outputShape,
+ Op_AVG_POOL2D,
+ Attribute_PoolAttribute,
+ descriptor,
+ LayerType::Pooling2d);
+}
+
TEST_CASE("GetTosaMapping_MaxPool2DLayer")
{
Pooling2dDescriptor descriptor;
@@ -241,80 +315,6 @@
basicBlock, inputShape, outputShape, Op_MAX_POOL2D, Attribute_PoolAttribute, descriptor, LayerType::Pooling2d);
}
-TEST_CASE("GetTosaMapping_AvgPool2DLayer")
-{
- Pooling2dDescriptor descriptor;
- descriptor.m_PoolType = PoolingAlgorithm::Average;
- descriptor.m_PoolWidth = descriptor.m_PoolHeight = 2;
- descriptor.m_StrideX = descriptor.m_StrideY = 2;
- descriptor.m_PadLeft = 1;
- descriptor.m_PadRight = 1;
- descriptor.m_PadTop = 1;
- descriptor.m_PadBottom = 1;
- descriptor.m_PaddingMethod = PaddingMethod::Exclude;
-
- TensorInfo inputTensorInfo({ 1, 1, 4, 4 }, DataType::Float32);
- TensorInfo outputTensorInfo({ 1, 1, 3, 3 }, DataType::Float32);
-
- std::vector<std::vector<int32_t>> inputShape = {{ 1, 1, 4, 4 }};
- std::vector<std::vector<int32_t>> outputShape = {{ 1, 1, 3, 3 }};
-
- TosaSerializationBasicBlock* basicBlock =
- GetTosaMapping(nullptr, LayerType::Pooling2d, {&inputTensorInfo}, {&outputTensorInfo}, descriptor);
- AssertTosaOneToOneMappingBasicBlock(basicBlock,
- inputShape,
- outputShape,
- Op_AVG_POOL2D,
- Attribute_PoolAttribute,
- descriptor,
- LayerType::Pooling2d);
-}
-
-TEST_CASE("GetTosaMappingFromLayer_AvgPool2DLayer")
-{
- IRuntime::CreationOptions options;
- IRuntimePtr runtime(IRuntime::Create(options));
-
- // Builds up the structure of the network.
- INetworkPtr net(INetwork::Create());
-
- Pooling2dDescriptor descriptor;
- descriptor.m_PoolType = PoolingAlgorithm::Average;
- descriptor.m_PoolWidth = descriptor.m_PoolHeight = 2;
- descriptor.m_StrideX = descriptor.m_StrideY = 2;
- descriptor.m_PadLeft = 1;
- descriptor.m_PadRight = 1;
- descriptor.m_PadTop = 1;
- 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");
-
- input0->GetOutputSlot(0).Connect(pool->GetInputSlot(0));
- pool->GetOutputSlot(0).Connect(output->GetInputSlot(0));
-
- TensorInfo inputTensorInfo({ 1, 1, 4, 4 }, DataType::Float32);
- TensorInfo outputTensorInfo({ 1, 1, 3, 3 }, DataType::Float32);
-
- std::vector<std::vector<int32_t>> inputShape = {{ 1, 1, 4, 4 }};
- std::vector<std::vector<int32_t>> outputShape = {{ 1, 1, 3, 3 }};
-
- input0->GetOutputSlot(0).SetTensorInfo(inputTensorInfo);
- pool->GetOutputSlot(0).SetTensorInfo(outputTensorInfo);
-
- TosaSerializationBasicBlock* basicBlock =
- GetTosaMappingFromLayer(PolymorphicDowncast<Layer*>(pool));
- AssertTosaOneToOneMappingBasicBlock(basicBlock,
- inputShape,
- outputShape,
- Op_AVG_POOL2D,
- Attribute_PoolAttribute,
- descriptor,
- LayerType::Pooling2d);
-}
-
TEST_CASE("GetTosaMapping_ReshapeLayer")
{
TensorInfo inputInfo = TensorInfo({ 2, 3 }, DataType::Float32);