aboutsummaryrefslogtreecommitdiff
path: root/tests/validation/fixtures
diff options
context:
space:
mode:
authorMichalis Spyrou <michalis.spyrou@arm.com>2018-09-18 13:09:30 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:54:54 +0000
commit13a51e11680aa24a9b841a4afe4079419bc8b80c (patch)
treeae9125b2e791d41fa4e2f8d9527ad3b9259eede0 /tests/validation/fixtures
parenta799ce0ad775829862891dd98d1232638ec8761e (diff)
downloadComputeLibrary-13a51e11680aa24a9b841a4afe4079419bc8b80c.tar.gz
COMPMID-1554 Implementing Space to Batch on OpenCL - NHWC
Change-Id: Ifa37a6758f79d0a6ca771dcfb4c55a5d96b452d0 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/148892 Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com> Tested-by: bsgcomp <bsgcomp@arm.com>
Diffstat (limited to 'tests/validation/fixtures')
-rw-r--r--tests/validation/fixtures/SpaceToBatchFixture.h23
1 files changed, 15 insertions, 8 deletions
diff --git a/tests/validation/fixtures/SpaceToBatchFixture.h b/tests/validation/fixtures/SpaceToBatchFixture.h
index 26c24c1331..a304162998 100644
--- a/tests/validation/fixtures/SpaceToBatchFixture.h
+++ b/tests/validation/fixtures/SpaceToBatchFixture.h
@@ -40,9 +40,9 @@ class SpaceToBatchLayerValidationFixture : public framework::Fixture
{
public:
template <typename...>
- void setup(TensorShape input_shape, TensorShape block_shape_shape, TensorShape paddings_shape, TensorShape output_shape, DataType data_type)
+ void setup(TensorShape input_shape, TensorShape block_shape_shape, TensorShape paddings_shape, TensorShape output_shape, DataType data_type, DataLayout data_layout)
{
- _target = compute_target(input_shape, block_shape_shape, paddings_shape, output_shape, data_type);
+ _target = compute_target(input_shape, block_shape_shape, paddings_shape, output_shape, data_type, data_layout);
_reference = compute_reference(input_shape, block_shape_shape, paddings_shape, output_shape, data_type);
}
@@ -59,14 +59,20 @@ protected:
std::uniform_int_distribution<> distribution(0, 0);
library->fill(tensor, distribution, i);
}
- TensorType compute_target(const TensorShape &input_shape, const TensorShape &block_shape_shape, const TensorShape &paddings_shape, const TensorShape &output_shape,
- DataType data_type)
+ TensorType compute_target(TensorShape input_shape, const TensorShape &block_shape_shape, const TensorShape &paddings_shape, TensorShape output_shape,
+ DataType data_type, DataLayout data_layout)
{
+ if(data_layout == DataLayout::NHWC)
+ {
+ permute(input_shape, PermutationVector(2U, 0U, 1U));
+ permute(output_shape, PermutationVector(2U, 0U, 1U));
+ }
+
// Create tensors
- TensorType input = create_tensor<TensorType>(input_shape, data_type);
+ TensorType input = create_tensor<TensorType>(input_shape, data_type, 1, QuantizationInfo(), data_layout);
TensorType block_shape = create_tensor<TensorType>(block_shape_shape, DataType::S32);
TensorType paddings = create_tensor<TensorType>(paddings_shape, DataType::S32);
- TensorType output = create_tensor<TensorType>(output_shape, data_type);
+ TensorType output = create_tensor<TensorType>(output_shape, data_type, 1, QuantizationInfo(), data_layout);
// Create and configure function
FunctionType space_to_batch;
@@ -92,10 +98,11 @@ protected:
fill(AccessorType(input), 0);
fill_pad(AccessorType(paddings), 0);
{
- auto block_shape_data = AccessorType(block_shape);
+ auto block_shape_data = AccessorType(block_shape);
+ const int idx_width = get_data_layout_dimension_index(data_layout, DataLayoutDimension::WIDTH);
for(unsigned int i = 0; i < block_shape_shape.x(); ++i)
{
- static_cast<int32_t *>(block_shape_data.data())[i] = input_shape[i] / output_shape[i];
+ static_cast<int32_t *>(block_shape_data.data())[i] = input_shape[i + idx_width] / output_shape[i + idx_width];
}
}
// Compute function