aboutsummaryrefslogtreecommitdiff
path: root/tests/datasets_new
diff options
context:
space:
mode:
authorSiCong Li <sicong.li@arm.com>2017-07-27 17:58:52 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:35:24 +0000
commit1e5c1575fd7d86344b96988c86b82b66584460c8 (patch)
treead263662d71ad70bdf01c25f88876f87ce38c919 /tests/datasets_new
parent0c9a8fdb88bfff9f2a7c4d00cb88b6519dd02f1b (diff)
downloadComputeLibrary-1e5c1575fd7d86344b96988c86b82b66584460c8.tar.gz
COMPMID-450 Add YOLOV2 benchmark tests
* Migrate BatchNormalizationLayer to new benchmark system. * Add YOLOV2 benchmark tests. * Fix F16 type issue in activation_layer cl kernel. * Separate precommit tests from nightly tests. Change-Id: I3f206e3f7469be6749d630ede8dcc9fb399de8b0 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/81582 Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'tests/datasets_new')
-rw-r--r--tests/datasets_new/AlexNetActivationLayerDataset.h61
-rw-r--r--tests/datasets_new/BatchNormalizationLayerDataset.h116
-rw-r--r--tests/datasets_new/GoogLeNetActivationLayerDataset.h (renamed from tests/datasets_new/ActivationLayerDataset.h)76
-rw-r--r--tests/datasets_new/LeNet5ActivationLayerDataset.h58
-rw-r--r--tests/datasets_new/SqueezeNetActivationLayerDataset.h77
-rw-r--r--tests/datasets_new/YOLOV2ActivationLayerDataset.h109
-rw-r--r--tests/datasets_new/YOLOV2BatchNormalizationLayerDataset.h70
-rw-r--r--tests/datasets_new/YOLOV2ConvolutionLayerDataset.h76
-rw-r--r--tests/datasets_new/YOLOV2PoolingLayerDataset.h60
9 files changed, 630 insertions, 73 deletions
diff --git a/tests/datasets_new/AlexNetActivationLayerDataset.h b/tests/datasets_new/AlexNetActivationLayerDataset.h
new file mode 100644
index 0000000000..27e9956647
--- /dev/null
+++ b/tests/datasets_new/AlexNetActivationLayerDataset.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2017 ARM Limited.
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+#ifndef ARM_COMPUTE_TEST_ALEXNET_ACTIVATION_LAYER_DATASET
+#define ARM_COMPUTE_TEST_ALEXNET_ACTIVATION_LAYER_DATASET
+
+#include "framework/datasets/Datasets.h"
+
+#include "tests/TypePrinter.h"
+
+#include "arm_compute/core/TensorShape.h"
+#include "arm_compute/core/Types.h"
+
+namespace arm_compute
+{
+namespace test
+{
+namespace datasets
+{
+class AlexNetActivationLayerDataset final : public
+ framework::dataset::CartesianProductDataset<framework::dataset::InitializerListDataset<TensorShape>, framework::dataset::SingletonDataset<ActivationLayerInfo>>
+{
+public:
+ AlexNetActivationLayerDataset()
+ : CartesianProductDataset
+ {
+ framework::dataset::make("Shape", {
+ TensorShape(55U, 55U, 96U), TensorShape(27U, 27U, 256U),
+ TensorShape(13U, 13U, 384U), TensorShape(13U, 13U, 256U),
+ TensorShape(4096U) }),
+ framework::dataset::make("Info", ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU))
+ }
+ {
+ }
+ AlexNetActivationLayerDataset(AlexNetActivationLayerDataset &&) = default;
+ ~AlexNetActivationLayerDataset() = default;
+};
+} // namespace datasets
+} // namespace test
+} // namespace arm_compute
+#endif /* ARM_COMPUTE_TEST_ALEXNET_ACTIVATION_LAYER_DATASET */
diff --git a/tests/datasets_new/BatchNormalizationLayerDataset.h b/tests/datasets_new/BatchNormalizationLayerDataset.h
new file mode 100644
index 0000000000..25e65d931c
--- /dev/null
+++ b/tests/datasets_new/BatchNormalizationLayerDataset.h
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2017 ARM Limited.
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+#ifndef ARM_COMPUTE_TEST_BATCHNORMALIZATION_LAYER_DATASET
+#define ARM_COMPUTE_TEST_BATCHNORMALIZATION_LAYER_DATASET
+
+#include "tests/TypePrinter.h"
+
+#include "arm_compute/core/TensorShape.h"
+#include "arm_compute/core/Types.h"
+
+namespace arm_compute
+{
+namespace test
+{
+namespace datasets
+{
+class BatchNormalizationLayerDataset
+{
+public:
+ using type = std::tuple<TensorShape, TensorShape, float>;
+
+ struct iterator
+ {
+ iterator(std::vector<TensorShape>::const_iterator tensor_it,
+ std::vector<TensorShape>::const_iterator param_it,
+ std::vector<float>::const_iterator epsilon_it)
+ : _tensor_it{ std::move(tensor_it) },
+ _param_it{ std::move(param_it) },
+ _epsilon_it{ std::move(epsilon_it) }
+ {
+ }
+
+ std::string description() const
+ {
+ std::stringstream description;
+ description << "In=" << *_tensor_it << ":";
+ description << "Out=" << *_tensor_it << ":";
+ description << "Mean=" << *_param_it << ":";
+ description << "Variance=" << *_param_it << ":";
+ description << "Beta=" << *_param_it << ":";
+ description << "Gamma=" << *_param_it << ":";
+ description << "Epsilon=" << *_epsilon_it;
+ return description.str();
+ }
+
+ BatchNormalizationLayerDataset::type operator*() const
+ {
+ return std::make_tuple(*_tensor_it, *_param_it, *_epsilon_it);
+ }
+
+ iterator &operator++()
+ {
+ ++_tensor_it;
+ ++_param_it;
+ ++_epsilon_it;
+
+ return *this;
+ }
+
+ private:
+ std::vector<TensorShape>::const_iterator _tensor_it;
+ std::vector<TensorShape>::const_iterator _param_it;
+ std::vector<float>::const_iterator _epsilon_it;
+ };
+
+ iterator begin() const
+ {
+ return iterator(_tensor_shapes.begin(), _param_shapes.begin(), _epsilons.begin());
+ }
+
+ int size() const
+ {
+ return std::min(_tensor_shapes.size(), std::min(_param_shapes.size(), _epsilons.size()));
+ }
+
+ void add_config(TensorShape tensor, TensorShape param, float epsilon)
+ {
+ _tensor_shapes.emplace_back(std::move(tensor));
+ _param_shapes.emplace_back(std::move(param));
+ _epsilons.emplace_back(std::move(epsilon));
+ }
+
+protected:
+ BatchNormalizationLayerDataset() = default;
+ BatchNormalizationLayerDataset(BatchNormalizationLayerDataset &&) = default;
+
+private:
+ std::vector<TensorShape> _tensor_shapes{};
+ std::vector<TensorShape> _param_shapes{};
+ std::vector<float> _epsilons{};
+};
+} // namespace datasets
+} // namespace test
+} // namespace arm_compute
+#endif /* ARM_COMPUTE_TEST_BATCHNORMALIZATION_LAYER_DATASET */
diff --git a/tests/datasets_new/ActivationLayerDataset.h b/tests/datasets_new/GoogLeNetActivationLayerDataset.h
index a6b882fde2..935edbc4aa 100644
--- a/tests/datasets_new/ActivationLayerDataset.h
+++ b/tests/datasets_new/GoogLeNetActivationLayerDataset.h
@@ -21,8 +21,8 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
-#ifndef ARM_COMPUTE_TEST_ACTIVATION_LAYER_DATASET
-#define ARM_COMPUTE_TEST_ACTIVATION_LAYER_DATASET
+#ifndef ARM_COMPUTE_TEST_GOOGLENET_ACTIVATION_LAYER_DATASET
+#define ARM_COMPUTE_TEST_GOOGLENET_ACTIVATION_LAYER_DATASET
#include "framework/datasets/Datasets.h"
@@ -37,41 +37,6 @@ namespace test
{
namespace datasets
{
-class AlexNetActivationLayerDataset final : public
- framework::dataset::CartesianProductDataset<framework::dataset::InitializerListDataset<TensorShape>, framework::dataset::SingletonDataset<ActivationLayerInfo>>
-{
-public:
- AlexNetActivationLayerDataset()
- : CartesianProductDataset
- {
- framework::dataset::make("Shape", {
- TensorShape(55U, 55U, 96U), TensorShape(27U, 27U, 256U),
- TensorShape(13U, 13U, 384U), TensorShape(13U, 13U, 256U),
- TensorShape(4096U) }),
- framework::dataset::make("Info", ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU))
- }
- {
- }
- AlexNetActivationLayerDataset(AlexNetActivationLayerDataset &&) = default;
- ~AlexNetActivationLayerDataset() = default;
-};
-
-class LeNet5ActivationLayerDataset final : public
- framework::dataset::CartesianProductDataset<framework::dataset::SingletonDataset<TensorShape>, framework::dataset::SingletonDataset<ActivationLayerInfo>>
-{
-public:
- LeNet5ActivationLayerDataset()
- : CartesianProductDataset
- {
- framework::dataset::make("Shape", TensorShape(500U)),
- framework::dataset::make("Info", ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU))
- }
- {
- }
- LeNet5ActivationLayerDataset(LeNet5ActivationLayerDataset &&) = default;
- ~LeNet5ActivationLayerDataset() = default;
-};
-
class GoogLeNetActivationLayerDataset final : public
framework::dataset::CartesianProductDataset<framework::dataset::InitializerListDataset<TensorShape>, framework::dataset::SingletonDataset<ActivationLayerInfo>>
{
@@ -152,42 +117,7 @@ public:
GoogLeNetActivationLayerDataset(GoogLeNetActivationLayerDataset &&) = default;
~GoogLeNetActivationLayerDataset() = default;
};
-
-class SqueezeNetActivationLayerDataset final : public
- framework::dataset::CartesianProductDataset<framework::dataset::InitializerListDataset<TensorShape>, framework::dataset::SingletonDataset<ActivationLayerInfo>>
-{
-public:
- SqueezeNetActivationLayerDataset()
- : CartesianProductDataset
- {
- framework::dataset::make("Shape", { // relu_conv1
- TensorShape(111U, 111U, 64U),
- // fire2/relu_squeeze1x1, fire3/relu_squeeze1x1
- TensorShape(55U, 55U, 16U),
- // fire2/relu_expand1x1, fire2/relu_expand3x3, fire3/relu_expand1x1, fire3/relu_expand3x3
- TensorShape(55U, 55U, 64U),
- // fire4/relu_squeeze1x1, fire5/relu_squeeze1x1
- TensorShape(27U, 27U, 32U),
- // fire4/relu_expand1x1, fire4/relu_expand3x3, fire5/relu_expand1x1, fire5/relu_expand3x3
- TensorShape(27U, 27U, 128U),
- // fire6/relu_squeeze1x1, fire7/relu_squeeze1x1
- TensorShape(13U, 13U, 48U),
- // fire6/relu_expand1x1, fire6/relu_expand3x3, fire7/relu_expand1x1, fire7/relu_expand3x3
- TensorShape(13U, 13U, 192U),
- // fire8/relu_squeeze1x1, fire9/relu_squeeze1x1
- TensorShape(13U, 13U, 64U),
- // fire8/relu_expand1x1, fire8/relu_expand3x3, fire9/relu_expand1x1, fire9/relu_expand3x3
- TensorShape(13U, 13U, 256U),
- // relu_conv10
- TensorShape(13U, 13U, 1000U) }),
- framework::dataset::make("Info", ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU))
- }
- {
- }
- SqueezeNetActivationLayerDataset(SqueezeNetActivationLayerDataset &&) = default;
- ~SqueezeNetActivationLayerDataset() = default;
-};
} // namespace datasets
} // namespace test
} // namespace arm_compute
-#endif /* ARM_COMPUTE_TEST_ACTIVATION_LAYER_DATASET */
+#endif /* ARM_COMPUTE_TEST_GOOGLENET_ACTIVATION_LAYER_DATASET */
diff --git a/tests/datasets_new/LeNet5ActivationLayerDataset.h b/tests/datasets_new/LeNet5ActivationLayerDataset.h
new file mode 100644
index 0000000000..5d2a36bfd3
--- /dev/null
+++ b/tests/datasets_new/LeNet5ActivationLayerDataset.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2017 ARM Limited.
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+#ifndef ARM_COMPUTE_TEST_LENET5_ACTIVATION_LAYER_DATASET
+#define ARM_COMPUTE_TEST_LENET5_ACTIVATION_LAYER_DATASET
+
+#include "framework/datasets/Datasets.h"
+
+#include "tests/TypePrinter.h"
+
+#include "arm_compute/core/TensorShape.h"
+#include "arm_compute/core/Types.h"
+
+namespace arm_compute
+{
+namespace test
+{
+namespace datasets
+{
+class LeNet5ActivationLayerDataset final : public
+ framework::dataset::CartesianProductDataset<framework::dataset::SingletonDataset<TensorShape>, framework::dataset::SingletonDataset<ActivationLayerInfo>>
+{
+public:
+ LeNet5ActivationLayerDataset()
+ : CartesianProductDataset
+ {
+ framework::dataset::make("Shape", TensorShape(500U)),
+ framework::dataset::make("Info", ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU))
+ }
+ {
+ }
+ LeNet5ActivationLayerDataset(LeNet5ActivationLayerDataset &&) = default;
+ ~LeNet5ActivationLayerDataset() = default;
+};
+} // namespace datasets
+} // namespace test
+} // namespace arm_compute
+#endif /* ARM_COMPUTE_TEST_LENET5_ACTIVATION_LAYER_DATASET */
diff --git a/tests/datasets_new/SqueezeNetActivationLayerDataset.h b/tests/datasets_new/SqueezeNetActivationLayerDataset.h
new file mode 100644
index 0000000000..9cc9973f8f
--- /dev/null
+++ b/tests/datasets_new/SqueezeNetActivationLayerDataset.h
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2017 ARM Limited.
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+#ifndef ARM_COMPUTE_TEST_SQUEEZENET_ACTIVATION_LAYER_DATASET
+#define ARM_COMPUTE_TEST_SQUEEZENET_ACTIVATION_LAYER_DATASET
+
+#include "framework/datasets/Datasets.h"
+
+#include "tests/TypePrinter.h"
+
+#include "arm_compute/core/TensorShape.h"
+#include "arm_compute/core/Types.h"
+
+namespace arm_compute
+{
+namespace test
+{
+namespace datasets
+{
+class SqueezeNetActivationLayerDataset final : public
+ framework::dataset::CartesianProductDataset<framework::dataset::InitializerListDataset<TensorShape>, framework::dataset::SingletonDataset<ActivationLayerInfo>>
+{
+public:
+ SqueezeNetActivationLayerDataset()
+ : CartesianProductDataset
+ {
+ framework::dataset::make("Shape", { // relu_conv1
+ TensorShape(111U, 111U, 64U),
+ // fire2/relu_squeeze1x1, fire3/relu_squeeze1x1
+ TensorShape(55U, 55U, 16U),
+ // fire2/relu_expand1x1, fire2/relu_expand3x3, fire3/relu_expand1x1, fire3/relu_expand3x3
+ TensorShape(55U, 55U, 64U),
+ // fire4/relu_squeeze1x1, fire5/relu_squeeze1x1
+ TensorShape(27U, 27U, 32U),
+ // fire4/relu_expand1x1, fire4/relu_expand3x3, fire5/relu_expand1x1, fire5/relu_expand3x3
+ TensorShape(27U, 27U, 128U),
+ // fire6/relu_squeeze1x1, fire7/relu_squeeze1x1
+ TensorShape(13U, 13U, 48U),
+ // fire6/relu_expand1x1, fire6/relu_expand3x3, fire7/relu_expand1x1, fire7/relu_expand3x3
+ TensorShape(13U, 13U, 192U),
+ // fire8/relu_squeeze1x1, fire9/relu_squeeze1x1
+ TensorShape(13U, 13U, 64U),
+ // fire8/relu_expand1x1, fire8/relu_expand3x3, fire9/relu_expand1x1, fire9/relu_expand3x3
+ TensorShape(13U, 13U, 256U),
+ // relu_conv10
+ TensorShape(13U, 13U, 1000U) }),
+ framework::dataset::make("Info", ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU))
+ }
+ {
+ }
+ SqueezeNetActivationLayerDataset(SqueezeNetActivationLayerDataset &&) = default;
+ ~SqueezeNetActivationLayerDataset() = default;
+};
+} // namespace datasets
+} // namespace test
+} // namespace arm_compute
+#endif /* ARM_COMPUTE_TEST_SQUEEZENET_ACTIVATION_LAYER_DATASET */
diff --git a/tests/datasets_new/YOLOV2ActivationLayerDataset.h b/tests/datasets_new/YOLOV2ActivationLayerDataset.h
new file mode 100644
index 0000000000..31327fa0d2
--- /dev/null
+++ b/tests/datasets_new/YOLOV2ActivationLayerDataset.h
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2017 ARM Limited.
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+#ifndef ARM_COMPUTE_TEST_YOLOV2_ACTIVATION_LAYER_DATASET
+#define ARM_COMPUTE_TEST_YOLOV2_ACTIVATION_LAYER_DATASET
+
+#include "framework/datasets/Datasets.h"
+
+#include "tests/TypePrinter.h"
+
+#include "arm_compute/core/TensorShape.h"
+#include "arm_compute/core/Types.h"
+
+namespace arm_compute
+{
+namespace test
+{
+namespace datasets
+{
+class YOLOV2ActivationLayerRELUDataset final : public
+ framework::dataset::CartesianProductDataset<framework::dataset::InitializerListDataset<TensorShape>, framework::dataset::SingletonDataset<ActivationLayerInfo>>
+{
+public:
+ YOLOV2ActivationLayerRELUDataset()
+ : CartesianProductDataset
+ {
+ framework::dataset::make("Shape", { // relu1
+ TensorShape(416U, 416U, 32U),
+ // relu2
+ TensorShape(208U, 208U, 64U),
+ // relu3, relu5
+ TensorShape(104U, 104U, 128U),
+ // relu4
+ TensorShape(104U, 104U, 64U),
+ // relu6, relu8
+ TensorShape(52U, 52U, 256U),
+ // relu7
+ TensorShape(52U, 52U, 128U),
+ // relu9, relu11, relu13
+ TensorShape(26U, 26U, 512U),
+ // relu10, relu12
+ TensorShape(26U, 26U, 256U),
+ // relu14, relu16, relu18, relu19, relu20, relu21
+ TensorShape(13U, 13U, 1024U),
+ // relu15, relu17
+ TensorShape(13U, 13U, 512U) }),
+ framework::dataset::make("Info", ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU))
+ }
+ {
+ }
+ YOLOV2ActivationLayerRELUDataset(YOLOV2ActivationLayerRELUDataset &&) = default;
+ ~YOLOV2ActivationLayerRELUDataset() = default;
+};
+
+class YOLOV2ActivationLayerLINEARDataset final : public
+ framework::dataset::CartesianProductDataset<framework::dataset::InitializerListDataset<TensorShape>, framework::dataset::SingletonDataset<ActivationLayerInfo>>
+{
+public:
+ YOLOV2ActivationLayerLINEARDataset()
+ : CartesianProductDataset
+ {
+ framework::dataset::make("Shape", { // linear22
+ TensorShape(15U, 15U, 425U) }),
+ framework::dataset::make("Info", ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::LINEAR))
+ }
+ {
+ }
+ YOLOV2ActivationLayerLINEARDataset(YOLOV2ActivationLayerLINEARDataset &&) = default;
+ ~YOLOV2ActivationLayerLINEARDataset() = default;
+};
+
+class YOLOV2ActivationLayerDataset final : public framework::dataset::JoinDataset<YOLOV2ActivationLayerRELUDataset, YOLOV2ActivationLayerLINEARDataset>
+{
+public:
+ YOLOV2ActivationLayerDataset()
+ : JoinDataset
+ {
+ YOLOV2ActivationLayerRELUDataset(),
+ YOLOV2ActivationLayerLINEARDataset()
+ }
+ {
+ }
+ YOLOV2ActivationLayerDataset(YOLOV2ActivationLayerDataset &&) = default;
+ ~YOLOV2ActivationLayerDataset() = default;
+};
+} // namespace datasets
+} // namespace test
+} // namespace arm_compute
+#endif /* ARM_COMPUTE_TEST_YOLOV2_ACTIVATION_LAYER_DATASET */
diff --git a/tests/datasets_new/YOLOV2BatchNormalizationLayerDataset.h b/tests/datasets_new/YOLOV2BatchNormalizationLayerDataset.h
new file mode 100644
index 0000000000..8cb69db869
--- /dev/null
+++ b/tests/datasets_new/YOLOV2BatchNormalizationLayerDataset.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2017 ARM Limited.
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+#ifndef ARM_COMPUTE_TEST_YOLOV2_BATCHNORMALIZATION_LAYER_DATASET
+#define ARM_COMPUTE_TEST_YOLOV2_BATCHNORMALIZATION_LAYER_DATASET
+
+#include "tests/datasets_new/BatchNormalizationLayerDataset.h"
+
+#include "tests/TypePrinter.h"
+
+#include "arm_compute/core/TensorShape.h"
+#include "arm_compute/core/Types.h"
+
+namespace arm_compute
+{
+namespace test
+{
+namespace datasets
+{
+class YOLOV2BatchNormalizationLayerDataset final : public BatchNormalizationLayerDataset
+{
+public:
+ YOLOV2BatchNormalizationLayerDataset()
+ {
+ // conv1_bn
+ add_config(TensorShape(416U, 416U, 32U), TensorShape(32U), 0.00001f);
+ // conv2_bn
+ add_config(TensorShape(208U, 208U, 64U), TensorShape(64U), 0.00001f);
+ // conv3_bn, conv5_bn
+ add_config(TensorShape(104U, 104U, 128U), TensorShape(128U), 0.00001f);
+ // conv4_bn
+ add_config(TensorShape(104U, 104U, 64U), TensorShape(64U), 0.00001f);
+ // conv6_bn, conv8_bn
+ add_config(TensorShape(52U, 52U, 256U), TensorShape(256U), 0.00001f);
+ // conv7_bn
+ add_config(TensorShape(52U, 52U, 128U), TensorShape(128U), 0.00001f);
+ // conv9_bn, conv11_bn, conv13_bn
+ add_config(TensorShape(26U, 26U, 512U), TensorShape(512U), 0.00001f);
+ // conv10_bn, conv12_bn
+ add_config(TensorShape(26U, 26U, 256U), TensorShape(256U), 0.00001f);
+ // conv14_bn, conv16_bn, conv18_bn, conv19_bn, conv20_bn, conv21_bn
+ add_config(TensorShape(13U, 13U, 1024U), TensorShape(1024U), 0.00001f);
+ // conv15_bn, conv17_bn
+ add_config(TensorShape(13U, 13U, 512U), TensorShape(512U), 0.00001f);
+ }
+};
+} // namespace datasets
+} // namespace test
+} // namespace arm_compute
+#endif /* ARM_COMPUTE_TEST_YOLOV2_BATCHNORMALIZATION_LAYER_DATASET */
diff --git a/tests/datasets_new/YOLOV2ConvolutionLayerDataset.h b/tests/datasets_new/YOLOV2ConvolutionLayerDataset.h
new file mode 100644
index 0000000000..ad3c38570e
--- /dev/null
+++ b/tests/datasets_new/YOLOV2ConvolutionLayerDataset.h
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2017 ARM Limited.
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+#ifndef ARM_COMPUTE_TEST_YOLOV2_CONVOLUTION_LAYER_DATASET
+#define ARM_COMPUTE_TEST_YOLOV2_CONVOLUTION_LAYER_DATASET
+
+#include "tests/datasets_new/ConvolutionLayerDataset.h"
+
+#include "tests/TypePrinter.h"
+
+#include "arm_compute/core/TensorShape.h"
+#include "arm_compute/core/Types.h"
+
+namespace arm_compute
+{
+namespace test
+{
+namespace datasets
+{
+class YOLOV2ConvolutionLayerDataset final : public ConvolutionLayerDataset
+{
+public:
+ YOLOV2ConvolutionLayerDataset()
+ {
+ // conv1
+ add_config(TensorShape(416U, 416U, 3U), TensorShape(3U, 3U, 3U, 32U), TensorShape(32U), TensorShape(416U, 416U, 32U), PadStrideInfo(1, 1, 1, 1));
+ // conv2
+ add_config(TensorShape(208U, 208U, 32U), TensorShape(3U, 3U, 32U, 64U), TensorShape(64U), TensorShape(208U, 208U, 64U), PadStrideInfo(1, 1, 1, 1));
+ // conv3, conv5
+ add_config(TensorShape(104U, 104U, 64U), TensorShape(3U, 3U, 64U, 128U), TensorShape(128U), TensorShape(104U, 104U, 128U), PadStrideInfo(1, 1, 1, 1));
+ // conv4
+ add_config(TensorShape(104U, 104U, 128U), TensorShape(1U, 1U, 128U, 64U), TensorShape(64U), TensorShape(104U, 104U, 64U), PadStrideInfo(1, 1, 0, 0));
+ // conv6, conv8
+ add_config(TensorShape(52U, 52U, 128U), TensorShape(3U, 3U, 128U, 256U), TensorShape(256U), TensorShape(52U, 52U, 256U), PadStrideInfo(1, 1, 1, 1));
+ // conv7
+ add_config(TensorShape(52U, 52U, 256U), TensorShape(1U, 1U, 256U, 128U), TensorShape(128U), TensorShape(52U, 52U, 128U), PadStrideInfo(1, 1, 0, 0));
+ // conv9, conv11, conv13
+ add_config(TensorShape(26U, 26U, 256U), TensorShape(3U, 3U, 256U, 512U), TensorShape(512U), TensorShape(26U, 26U, 512U), PadStrideInfo(1, 1, 1, 1));
+ // conv10, conv12
+ add_config(TensorShape(26U, 26U, 512U), TensorShape(1U, 1U, 512U, 256U), TensorShape(256U), TensorShape(26U, 26U, 256U), PadStrideInfo(1, 1, 0, 0));
+ // conv14, conv16, conv18
+ add_config(TensorShape(13U, 13U, 512U), TensorShape(3U, 3U, 512U, 1024U), TensorShape(1024U), TensorShape(13U, 13U, 1024U), PadStrideInfo(1, 1, 1, 1));
+ // conv15, conv17
+ add_config(TensorShape(13U, 13U, 1024U), TensorShape(1U, 1U, 1024U, 512U), TensorShape(512U), TensorShape(13U, 13U, 512U), PadStrideInfo(1, 1, 0, 0));
+ // conv19, conv20
+ add_config(TensorShape(13U, 13U, 1024U), TensorShape(3U, 3U, 1024U, 1024U), TensorShape(1024U), TensorShape(13U, 13U, 1024U), PadStrideInfo(1, 1, 1, 1));
+ // conv21
+ add_config(TensorShape(13U, 13U, 3072U), TensorShape(3U, 3U, 3072U, 1024U), TensorShape(1024U), TensorShape(13U, 13U, 1024U), PadStrideInfo(1, 1, 1, 1));
+ // conv22
+ add_config(TensorShape(13U, 13U, 1024U), TensorShape(1U, 1U, 1024U, 425U), TensorShape(425U), TensorShape(15U, 15U, 425U), PadStrideInfo(1, 1, 1, 1));
+ }
+};
+} // namespace datasets
+} // namespace test
+} // namespace arm_compute
+#endif /* ARM_COMPUTE_TEST_YOLOV2_CONVOLUTION_LAYER_DATASET */
diff --git a/tests/datasets_new/YOLOV2PoolingLayerDataset.h b/tests/datasets_new/YOLOV2PoolingLayerDataset.h
new file mode 100644
index 0000000000..273409dec6
--- /dev/null
+++ b/tests/datasets_new/YOLOV2PoolingLayerDataset.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2017 ARM Limited.
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+#ifndef ARM_COMPUTE_TEST_YOLOV2_POOLING_LAYER_DATASET
+#define ARM_COMPUTE_TEST_YOLOV2_POOLING_LAYER_DATASET
+
+#include "tests/datasets_new/PoolingLayerDataset.h"
+
+#include "tests/TypePrinter.h"
+
+#include "arm_compute/core/TensorShape.h"
+#include "arm_compute/core/Types.h"
+
+namespace arm_compute
+{
+namespace test
+{
+namespace datasets
+{
+class YOLOV2PoolingLayerDataset final : public PoolingLayerDataset
+{
+public:
+ YOLOV2PoolingLayerDataset()
+ {
+ // pool1
+ add_config(TensorShape(416U, 416U, 32U), TensorShape(208U, 208U, 32U), PoolingLayerInfo(PoolingType::MAX, 2, PadStrideInfo(2, 2, 0, 0, DimensionRoundingType::CEIL)));
+ // pool2
+ add_config(TensorShape(208U, 208U, 64U), TensorShape(104U, 104U, 64U), PoolingLayerInfo(PoolingType::MAX, 2, PadStrideInfo(2, 2, 0, 0, DimensionRoundingType::CEIL)));
+ // pool5
+ add_config(TensorShape(104U, 104U, 128U), TensorShape(52U, 52U, 128U), PoolingLayerInfo(PoolingType::MAX, 2, PadStrideInfo(2, 2, 0, 0, DimensionRoundingType::CEIL)));
+ // pool8
+ add_config(TensorShape(52U, 52U, 256U), TensorShape(26U, 26U, 256U), PoolingLayerInfo(PoolingType::MAX, 2, PadStrideInfo(2, 2, 0, 0, DimensionRoundingType::CEIL)));
+ // pool13
+ add_config(TensorShape(26U, 26U, 512U), TensorShape(13U, 13U, 512U), PoolingLayerInfo(PoolingType::MAX, 2, PadStrideInfo(2, 2, 0, 0, DimensionRoundingType::CEIL)));
+ }
+};
+} // namespace datasets
+} // namespace test
+} // namespace arm_compute
+#endif /* ARM_COMPUTE_TEST_YOLOV2_POOLING_LAYER_DATASET */