aboutsummaryrefslogtreecommitdiff
path: root/tests/datasets_new
diff options
context:
space:
mode:
authorSiCong Li <sicong.li@arm.com>2017-08-18 11:58:21 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:35:24 +0000
commitcc65bbe73dc4e376108fedb82ce06df983536595 (patch)
tree79b3d048ff23d39b48807dff615adf9a68cc5099 /tests/datasets_new
parent1246b63ca04cb067f26ae860688647224d6ba24e (diff)
downloadComputeLibrary-cc65bbe73dc4e376108fedb82ce06df983536595.tar.gz
COMPMID-483 Add VGG16 benchmarks
* Add VGG16 benchmarks * Remove batch size 4 from all precommit benchmarks for FullyConnectedLayer * Move all batch sizes > 1 to nightly Change-Id: I80c890f488fa68d672fe66cb5ce7180992a4ec41 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/84477 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/system_tests/vgg/vgg16/VGG16ActivationLayerDataset.h69
-rw-r--r--tests/datasets_new/system_tests/vgg/vgg16/VGG16ConvolutionLayerDataset.h94
-rw-r--r--tests/datasets_new/system_tests/vgg/vgg16/VGG16FullyConnectedLayerDataset.h56
-rw-r--r--tests/datasets_new/system_tests/vgg/vgg16/VGG16PoolingLayerDataset.h60
4 files changed, 279 insertions, 0 deletions
diff --git a/tests/datasets_new/system_tests/vgg/vgg16/VGG16ActivationLayerDataset.h b/tests/datasets_new/system_tests/vgg/vgg16/VGG16ActivationLayerDataset.h
new file mode 100644
index 0000000000..757357f62e
--- /dev/null
+++ b/tests/datasets_new/system_tests/vgg/vgg16/VGG16ActivationLayerDataset.h
@@ -0,0 +1,69 @@
+/*
+ * 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_VGG16_ACTIVATION_LAYER_DATASET
+#define ARM_COMPUTE_TEST_VGG16_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 VGG16ActivationLayerDataset final : public
+ framework::dataset::CartesianProductDataset<framework::dataset::InitializerListDataset<TensorShape>, framework::dataset::SingletonDataset<ActivationLayerInfo>>
+{
+public:
+ VGG16ActivationLayerDataset()
+ : CartesianProductDataset
+ {
+ framework::dataset::make("Shape", { // relu1_1, relu1_2
+ TensorShape(224U, 224U, 64U),
+ // relu2_1, relu2_2
+ TensorShape(112U, 112U, 128U),
+ // relu3_1, relu3_2, relu3_3
+ TensorShape(56U, 56U, 256U),
+ // relu4_1, relu4_2, relu4_3
+ TensorShape(28U, 28U, 512U),
+ // relu5_1, relu5_2, relu5_3
+ TensorShape(14U, 14U, 512U),
+ // relu6, relu7
+ TensorShape(4096U) }),
+ framework::dataset::make("Info", ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU))
+ }
+ {
+ }
+ VGG16ActivationLayerDataset(VGG16ActivationLayerDataset &&) = default;
+ ~VGG16ActivationLayerDataset() = default;
+};
+} // namespace datasets
+} // namespace test
+} // namespace arm_compute
+#endif /* ARM_COMPUTE_TEST_VGG16_ACTIVATION_LAYER_DATASET */
diff --git a/tests/datasets_new/system_tests/vgg/vgg16/VGG16ConvolutionLayerDataset.h b/tests/datasets_new/system_tests/vgg/vgg16/VGG16ConvolutionLayerDataset.h
new file mode 100644
index 0000000000..4e5b2a6e74
--- /dev/null
+++ b/tests/datasets_new/system_tests/vgg/vgg16/VGG16ConvolutionLayerDataset.h
@@ -0,0 +1,94 @@
+/*
+ * 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_VGG16_CONVOLUTION_LAYER_DATASET
+#define ARM_COMPUTE_TEST_VGG16_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 VGG16ConvolutionLayerDataset final : public ConvolutionLayerDataset
+{
+public:
+ VGG16ConvolutionLayerDataset()
+ {
+ // conv1_1
+ add_config(TensorShape(224U, 224U, 3U), TensorShape(3U, 3U, 3U, 64U), TensorShape(64U), TensorShape(224U, 224U, 64U), PadStrideInfo(1, 1, 1, 1));
+ // conv1_2
+ add_config(TensorShape(224U, 224U, 64U), TensorShape(3U, 3U, 64U, 64U), TensorShape(64U), TensorShape(224U, 224U, 64U), PadStrideInfo(1, 1, 1, 1));
+ // conv2_1
+ add_config(TensorShape(112U, 112U, 64U), TensorShape(3U, 3U, 64U, 128U), TensorShape(128U), TensorShape(112U, 112U, 128U), PadStrideInfo(1, 1, 1, 1));
+ // conv2_2
+ add_config(TensorShape(112U, 112U, 128U), TensorShape(3U, 3U, 128U, 128U), TensorShape(128U), TensorShape(112U, 112U, 128U), PadStrideInfo(1, 1, 1, 1));
+ // conv3_1
+ add_config(TensorShape(56U, 56U, 128U), TensorShape(3U, 3U, 128U, 256U), TensorShape(256U), TensorShape(56U, 56U, 256U), PadStrideInfo(1, 1, 1, 1));
+ // conv3_2, conv3_3
+ add_config(TensorShape(56U, 56U, 256U), TensorShape(3U, 3U, 256U, 256U), TensorShape(256U), TensorShape(56U, 56U, 256U), PadStrideInfo(1, 1, 1, 1));
+ // conv4_1
+ add_config(TensorShape(28U, 28U, 256U), TensorShape(3U, 3U, 256U, 512U), TensorShape(512U), TensorShape(28U, 28U, 512U), PadStrideInfo(1, 1, 1, 1));
+ // conv4_2, conv4_3
+ add_config(TensorShape(28U, 28U, 512U), TensorShape(3U, 3U, 512U, 512U), TensorShape(512U), TensorShape(28U, 28U, 512U), PadStrideInfo(1, 1, 1, 1));
+ // conv5_1, conv5_2, conv5_3
+ add_config(TensorShape(14U, 14U, 512U), TensorShape(3U, 3U, 512U, 512U), TensorShape(512U), TensorShape(14U, 14U, 512U), PadStrideInfo(1, 1, 1, 1));
+ }
+};
+
+class VGG16DirectConvolutionLayerDataset final : public ConvolutionLayerDataset
+{
+public:
+ VGG16DirectConvolutionLayerDataset()
+ {
+ // conv1_1
+ add_config(TensorShape(224U, 224U, 3U), TensorShape(3U, 3U, 3U, 64U), TensorShape(64U), TensorShape(224U, 224U, 64U), PadStrideInfo(1, 1, 1, 1));
+ // conv1_2
+ add_config(TensorShape(224U, 224U, 64U), TensorShape(3U, 3U, 64U, 64U), TensorShape(64U), TensorShape(224U, 224U, 64U), PadStrideInfo(1, 1, 1, 1));
+ // conv2_1
+ add_config(TensorShape(112U, 112U, 64U), TensorShape(3U, 3U, 64U, 128U), TensorShape(128U), TensorShape(112U, 112U, 128U), PadStrideInfo(1, 1, 1, 1));
+ // conv2_2
+ add_config(TensorShape(112U, 112U, 128U), TensorShape(3U, 3U, 128U, 128U), TensorShape(128U), TensorShape(112U, 112U, 128U), PadStrideInfo(1, 1, 1, 1));
+ // conv3_1
+ add_config(TensorShape(56U, 56U, 128U), TensorShape(3U, 3U, 128U, 256U), TensorShape(256U), TensorShape(56U, 56U, 256U), PadStrideInfo(1, 1, 1, 1));
+ // conv3_2, conv3_3
+ add_config(TensorShape(56U, 56U, 256U), TensorShape(3U, 3U, 256U, 256U), TensorShape(256U), TensorShape(56U, 56U, 256U), PadStrideInfo(1, 1, 1, 1));
+ // conv4_1
+ add_config(TensorShape(28U, 28U, 256U), TensorShape(3U, 3U, 256U, 512U), TensorShape(512U), TensorShape(28U, 28U, 512U), PadStrideInfo(1, 1, 1, 1));
+ // conv4_2, conv4_3
+ add_config(TensorShape(28U, 28U, 512U), TensorShape(3U, 3U, 512U, 512U), TensorShape(512U), TensorShape(28U, 28U, 512U), PadStrideInfo(1, 1, 1, 1));
+ // conv5_1, conv5_2, conv5_3
+ add_config(TensorShape(14U, 14U, 512U), TensorShape(3U, 3U, 512U, 512U), TensorShape(512U), TensorShape(14U, 14U, 512U), PadStrideInfo(1, 1, 1, 1));
+ }
+};
+} // namespace datasets
+} // namespace test
+} // namespace arm_compute
+#endif /* ARM_COMPUTE_TEST_VGG16_CONVOLUTION_LAYER_DATASET */
diff --git a/tests/datasets_new/system_tests/vgg/vgg16/VGG16FullyConnectedLayerDataset.h b/tests/datasets_new/system_tests/vgg/vgg16/VGG16FullyConnectedLayerDataset.h
new file mode 100644
index 0000000000..19d22ba1a5
--- /dev/null
+++ b/tests/datasets_new/system_tests/vgg/vgg16/VGG16FullyConnectedLayerDataset.h
@@ -0,0 +1,56 @@
+/*
+ * 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_VGG16_FULLYCONNECTED_LAYER_DATASET
+#define ARM_COMPUTE_TEST_VGG16_FULLYCONNECTED_LAYER_DATASET
+
+#include "tests/datasets_new/FullyConnectedLayerDataset.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 VGG16FullyConnectedLayerDataset final : public FullyConnectedLayerDataset
+{
+public:
+ VGG16FullyConnectedLayerDataset()
+ {
+ // fc6
+ add_config(TensorShape(7U, 7U, 512U), TensorShape(25088U, 4096U), TensorShape(4096U), TensorShape(4096U));
+ // fc7
+ add_config(TensorShape(4096U), TensorShape(4096U, 4096U), TensorShape(4096U), TensorShape(4096U));
+ // fc8
+ add_config(TensorShape(4096U), TensorShape(4096U, 1000U), TensorShape(1000U), TensorShape(1000U));
+ }
+};
+} // namespace datasets
+} // namespace test
+} // namespace arm_compute
+#endif /* ARM_COMPUTE_TEST_VGG16_FULLYCONNECTED_LAYER_DATASET */
diff --git a/tests/datasets_new/system_tests/vgg/vgg16/VGG16PoolingLayerDataset.h b/tests/datasets_new/system_tests/vgg/vgg16/VGG16PoolingLayerDataset.h
new file mode 100644
index 0000000000..fcd9d2f1c3
--- /dev/null
+++ b/tests/datasets_new/system_tests/vgg/vgg16/VGG16PoolingLayerDataset.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_VGG16_POOLING_LAYER_DATASET
+#define ARM_COMPUTE_TEST_VGG16_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 VGG16PoolingLayerDataset final : public PoolingLayerDataset
+{
+public:
+ VGG16PoolingLayerDataset()
+ {
+ // pool1
+ add_config(TensorShape(224U, 224U, 64U), TensorShape(112U, 112U, 64U), PoolingLayerInfo(PoolingType::MAX, 2, PadStrideInfo(2, 2, 0, 0, DimensionRoundingType::CEIL)));
+ // pool2
+ add_config(TensorShape(112U, 112U, 128U), TensorShape(56U, 56U, 128U), PoolingLayerInfo(PoolingType::MAX, 2, PadStrideInfo(2, 2, 0, 0, DimensionRoundingType::CEIL)));
+ // pool3
+ add_config(TensorShape(56U, 56U, 256U), TensorShape(28U, 28U, 256U), PoolingLayerInfo(PoolingType::MAX, 2, PadStrideInfo(2, 2, 0, 0, DimensionRoundingType::CEIL)));
+ // pool4
+ add_config(TensorShape(28U, 28U, 512U), TensorShape(14U, 14U, 512U), PoolingLayerInfo(PoolingType::MAX, 2, PadStrideInfo(2, 2, 0, 0, DimensionRoundingType::CEIL)));
+ // pool5
+ add_config(TensorShape(14U, 14U, 512U), TensorShape(7U, 7U, 512U), PoolingLayerInfo(PoolingType::MAX, 2, PadStrideInfo(2, 2, 0, 0, DimensionRoundingType::CEIL)));
+ }
+};
+} // namespace datasets
+} // namespace test
+} // namespace arm_compute
+#endif /* ARM_COMPUTE_TEST_VGG16_POOLING_LAYER_DATASET */