From 287051663030ccd945accdcd90905fb48bf30948 Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Wed, 21 Mar 2018 20:10:53 +0000 Subject: COMPMID-1007: Add initial validate support to backend Change-Id: I55eae35f35a3c7891e8d535907c861f022e43bea Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/125470 Tested-by: Jenkins Reviewed-by: Gian Marco Iodice --- examples/graph_googlenet.cpp | 2 +- examples/graph_inception_v3.cpp | 5 +++-- examples/graph_inception_v4.cpp | 3 +++ examples/graph_resnet50.cpp | 3 +++ examples/graph_squeezenet.cpp | 3 +++ examples/graph_squeezenet_v1_1.cpp | 4 ++++ 6 files changed, 17 insertions(+), 3 deletions(-) (limited to 'examples') diff --git a/examples/graph_googlenet.cpp b/examples/graph_googlenet.cpp index d64512bb96..e97f3acdfd 100644 --- a/examples/graph_googlenet.cpp +++ b/examples/graph_googlenet.cpp @@ -54,7 +54,7 @@ public: // Set target. 0 (NEON), 1 (OpenCL), 2 (OpenCL with Tuner). By default it is NEON const int target = argc > 1 ? std::strtol(argv[1], nullptr, 10) : 0; Target target_hint = set_target_hint2(target); - ConvolutionMethod convolution_hint = ConvolutionMethod::GEMM; + ConvolutionMethod convolution_hint = (target_hint == Target::CL) ? ConvolutionMethod::WINOGRAD : ConvolutionMethod::GEMM; bool enable_tuning = (target == 2); bool enable_memory_management = true; diff --git a/examples/graph_inception_v3.cpp b/examples/graph_inception_v3.cpp index 9bb51bad44..73a4450a4f 100644 --- a/examples/graph_inception_v3.cpp +++ b/examples/graph_inception_v3.cpp @@ -56,6 +56,8 @@ public: bool enable_tuning = (target == 2); bool enable_memory_management = true; + ConvolutionMethod convolution_hint = (target_hint == Target::CL) ? ConvolutionMethod::WINOGRAD : ConvolutionMethod::GEMM; + // Parse arguments if(argc < 2) { @@ -90,7 +92,6 @@ public: graph << target_hint << InputLayer(TensorDescriptor(TensorShape(299U, 299U, 3U, 1U), DataType::F32), get_input_accessor(image, std::move(preprocessor), false)) - << ConvolutionLayer(3U, 3U, 32U, get_weights_accessor(data_path, "/cnn_data/inceptionv3_model/Conv2d_1a_3x3_weights.npy"), std::unique_ptr(nullptr), PadStrideInfo(2, 2, 0, 0)) @@ -102,7 +103,7 @@ public: "/cnn_data/inceptionv3_model/Conv2d_1a_3x3_BatchNorm_beta.npy"), 0.001f) << ActivationLayer(ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU)) - + << convolution_hint << ConvolutionLayer(3U, 3U, 32U, get_weights_accessor(data_path, "/cnn_data/inceptionv3_model/Conv2d_2a_3x3_weights.npy"), std::unique_ptr(nullptr), PadStrideInfo(1, 1, 0, 0)) diff --git a/examples/graph_inception_v4.cpp b/examples/graph_inception_v4.cpp index 6f76b5e2e7..88073b7efb 100644 --- a/examples/graph_inception_v4.cpp +++ b/examples/graph_inception_v4.cpp @@ -60,6 +60,8 @@ public: bool enable_tuning = (target == 2); bool enable_memory_management = true; + ConvolutionMethod convolution_hint = (target_hint == Target::CL) ? ConvolutionMethod::WINOGRAD : ConvolutionMethod::GEMM; + // Parse arguments if(argc < 2) { @@ -104,6 +106,7 @@ public: get_weights_accessor(data_path, "/cnn_data/inceptionv4_model/Conv2d_1a_3x3_BatchNorm_beta.npy"), 0.001f) << ActivationLayer(ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU)) + << convolution_hint // Conv2d_2a_3x3 << ConvolutionLayer(3U, 3U, 32U, get_weights_accessor(data_path, "/cnn_data/inceptionv4_model/Conv2d_2a_3x3_weights.npy"), diff --git a/examples/graph_resnet50.cpp b/examples/graph_resnet50.cpp index 90debb4293..a7d7abc761 100644 --- a/examples/graph_resnet50.cpp +++ b/examples/graph_resnet50.cpp @@ -57,6 +57,8 @@ public: bool enable_tuning = (target == 2); bool enable_memory_management = true; + ConvolutionMethod convolution_hint = (target_hint == Target::CL) ? ConvolutionMethod::WINOGRAD : ConvolutionMethod::GEMM; + // Parse arguments if(argc < 2) { @@ -97,6 +99,7 @@ public: get_weights_accessor(data_path, "/cnn_data/resnet50_model/conv1_weights.npy"), std::unique_ptr(nullptr), PadStrideInfo(2, 2, 3, 3)) + << convolution_hint << BatchNormalizationLayer( get_weights_accessor(data_path, "/cnn_data/resnet50_model/conv1_BatchNorm_moving_mean.npy"), get_weights_accessor(data_path, "/cnn_data/resnet50_model/conv1_BatchNorm_moving_variance.npy"), diff --git a/examples/graph_squeezenet.cpp b/examples/graph_squeezenet.cpp index b4e00a451b..92e6a38fcd 100644 --- a/examples/graph_squeezenet.cpp +++ b/examples/graph_squeezenet.cpp @@ -58,6 +58,8 @@ public: bool enable_tuning = (target == 2); bool enable_memory_management = true; + ConvolutionMethod convolution_hint = (target_hint == Target::CL) ? ConvolutionMethod::WINOGRAD : ConvolutionMethod::GEMM; + // Parse arguments if(argc < 2) { @@ -100,6 +102,7 @@ public: PadStrideInfo(2, 2, 0, 0)) << ActivationLayer(ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU)) << PoolingLayer(PoolingLayerInfo(PoolingType::MAX, 3, PadStrideInfo(2, 2, 0, 0, DimensionRoundingType::CEIL))) + << convolution_hint << ConvolutionLayer( 1U, 1U, 16U, get_weights_accessor(data_path, "/cnn_data/squeezenet_v1.0_model/fire2_squeeze1x1_w.npy"), diff --git a/examples/graph_squeezenet_v1_1.cpp b/examples/graph_squeezenet_v1_1.cpp index 4ebfd3fe8e..540784e4cd 100644 --- a/examples/graph_squeezenet_v1_1.cpp +++ b/examples/graph_squeezenet_v1_1.cpp @@ -61,6 +61,8 @@ public: bool enable_tuning = (target == 2); bool enable_memory_management = true; + ConvolutionMethod convolution_hint = (target_hint == Target::CL) ? ConvolutionMethod::WINOGRAD : ConvolutionMethod::GEMM; + // Parse arguments if(argc < 2) { @@ -96,6 +98,7 @@ public: graph << target_hint << InputLayer(TensorDescriptor(TensorShape(227U, 227U, 3U, 1U), DataType::F32), get_input_accessor(image, std::move(preprocessor))) + << ConvolutionMethod::DIRECT << ConvolutionLayer( 3U, 3U, 64U, get_weights_accessor(data_path, "/cnn_data/squeezenet_v1_1_model/conv1_w.npy"), @@ -103,6 +106,7 @@ public: PadStrideInfo(2, 2, 0, 0)) << ActivationLayer(ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU)) << PoolingLayer(PoolingLayerInfo(PoolingType::MAX, 3, PadStrideInfo(2, 2, 0, 0, DimensionRoundingType::CEIL))) + << convolution_hint << ConvolutionLayer( 1U, 1U, 16U, get_weights_accessor(data_path, "/cnn_data/squeezenet_v1_1_model/fire2_squeeze1x1_w.npy"), -- cgit v1.2.1