1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2020, 2023 Arm Ltd and Contributors. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker
6*89c4ff92SAndroid Build Coastguard Worker #include "ActivationTestHelper.hpp"
7*89c4ff92SAndroid Build Coastguard Worker
8*89c4ff92SAndroid Build Coastguard Worker #include <armnn_delegate.hpp>
9*89c4ff92SAndroid Build Coastguard Worker
10*89c4ff92SAndroid Build Coastguard Worker #include <flatbuffers/flatbuffers.h>
11*89c4ff92SAndroid Build Coastguard Worker #include <tensorflow/lite/interpreter.h>
12*89c4ff92SAndroid Build Coastguard Worker #include <schema_generated.h>
13*89c4ff92SAndroid Build Coastguard Worker
14*89c4ff92SAndroid Build Coastguard Worker #include <doctest/doctest.h>
15*89c4ff92SAndroid Build Coastguard Worker
16*89c4ff92SAndroid Build Coastguard Worker namespace armnnDelegate
17*89c4ff92SAndroid Build Coastguard Worker {
18*89c4ff92SAndroid Build Coastguard Worker
19*89c4ff92SAndroid Build Coastguard Worker
ActivationReLuTest(std::vector<armnn::BackendId> & backends)20*89c4ff92SAndroid Build Coastguard Worker void ActivationReLuTest(std::vector<armnn::BackendId>& backends)
21*89c4ff92SAndroid Build Coastguard Worker {
22*89c4ff92SAndroid Build Coastguard Worker std::vector<float> inputData = {
23*89c4ff92SAndroid Build Coastguard Worker -0.1f, -0.2f, -0.3f, -0.4f,
24*89c4ff92SAndroid Build Coastguard Worker 0.1f, 0.2f, 0.3f, 0.4f,
25*89c4ff92SAndroid Build Coastguard Worker -1.0f, -2.0f, -3.0f, -4.0f,
26*89c4ff92SAndroid Build Coastguard Worker 1.0f, 2.0f, 3.0f, 4.0f
27*89c4ff92SAndroid Build Coastguard Worker };
28*89c4ff92SAndroid Build Coastguard Worker
29*89c4ff92SAndroid Build Coastguard Worker // Calculate output values for input.
30*89c4ff92SAndroid Build Coastguard Worker auto f = [](float value)
31*89c4ff92SAndroid Build Coastguard Worker {
32*89c4ff92SAndroid Build Coastguard Worker return std::fmax(0.0f, value);
33*89c4ff92SAndroid Build Coastguard Worker };
34*89c4ff92SAndroid Build Coastguard Worker std::vector<float> outputExpectedData(inputData.size());
35*89c4ff92SAndroid Build Coastguard Worker std::transform(inputData.begin(), inputData.end(), outputExpectedData.begin(), f);
36*89c4ff92SAndroid Build Coastguard Worker
37*89c4ff92SAndroid Build Coastguard Worker ActivationTest(tflite::BuiltinOperator_RELU,
38*89c4ff92SAndroid Build Coastguard Worker backends,
39*89c4ff92SAndroid Build Coastguard Worker inputData,
40*89c4ff92SAndroid Build Coastguard Worker outputExpectedData);
41*89c4ff92SAndroid Build Coastguard Worker }
42*89c4ff92SAndroid Build Coastguard Worker
ActivationBoundedReluTest(std::vector<armnn::BackendId> & backends)43*89c4ff92SAndroid Build Coastguard Worker void ActivationBoundedReluTest(std::vector<armnn::BackendId>& backends)
44*89c4ff92SAndroid Build Coastguard Worker {
45*89c4ff92SAndroid Build Coastguard Worker std::vector<float> inputData = {
46*89c4ff92SAndroid Build Coastguard Worker -0.1f, -0.2f, -0.3f, -0.4f,
47*89c4ff92SAndroid Build Coastguard Worker 0.1f, 0.2f, 0.3f, 0.4f,
48*89c4ff92SAndroid Build Coastguard Worker -1.0f, -2.0f, -3.0f, -4.0f,
49*89c4ff92SAndroid Build Coastguard Worker 1.0f, 2.0f, 3.0f, 4.0f
50*89c4ff92SAndroid Build Coastguard Worker };
51*89c4ff92SAndroid Build Coastguard Worker
52*89c4ff92SAndroid Build Coastguard Worker const float a = 6.0f;
53*89c4ff92SAndroid Build Coastguard Worker const float b = 0.0f;
54*89c4ff92SAndroid Build Coastguard Worker // Calculate output values for input.
55*89c4ff92SAndroid Build Coastguard Worker auto f = [a, b](float value)
56*89c4ff92SAndroid Build Coastguard Worker {
57*89c4ff92SAndroid Build Coastguard Worker return std::min(a, std::max(b, value));
58*89c4ff92SAndroid Build Coastguard Worker };
59*89c4ff92SAndroid Build Coastguard Worker std::vector<float> outputExpectedData(inputData.size());
60*89c4ff92SAndroid Build Coastguard Worker std::transform(inputData.begin(), inputData.end(), outputExpectedData.begin(), f);
61*89c4ff92SAndroid Build Coastguard Worker
62*89c4ff92SAndroid Build Coastguard Worker ActivationTest(tflite::BuiltinOperator_RELU6,
63*89c4ff92SAndroid Build Coastguard Worker backends,
64*89c4ff92SAndroid Build Coastguard Worker inputData,
65*89c4ff92SAndroid Build Coastguard Worker outputExpectedData);
66*89c4ff92SAndroid Build Coastguard Worker }
67*89c4ff92SAndroid Build Coastguard Worker
ActivationSigmoidTest(std::vector<armnn::BackendId> & backends)68*89c4ff92SAndroid Build Coastguard Worker void ActivationSigmoidTest(std::vector<armnn::BackendId>& backends)
69*89c4ff92SAndroid Build Coastguard Worker {
70*89c4ff92SAndroid Build Coastguard Worker std::vector<float> inputData = {
71*89c4ff92SAndroid Build Coastguard Worker -0.1f, -0.2f, -0.3f, -0.4f,
72*89c4ff92SAndroid Build Coastguard Worker 0.1f, 0.2f, 0.3f, 0.4f,
73*89c4ff92SAndroid Build Coastguard Worker -1.0f, -2.0f, -3.0f, -4.0f,
74*89c4ff92SAndroid Build Coastguard Worker 1.0f, 2.0f, 3.0f, 4.0f
75*89c4ff92SAndroid Build Coastguard Worker };
76*89c4ff92SAndroid Build Coastguard Worker
77*89c4ff92SAndroid Build Coastguard Worker // Calculate output values for input.
78*89c4ff92SAndroid Build Coastguard Worker auto f = [](float value)
79*89c4ff92SAndroid Build Coastguard Worker {
80*89c4ff92SAndroid Build Coastguard Worker return 1.0f / (1.0f + std::exp(-value));
81*89c4ff92SAndroid Build Coastguard Worker };
82*89c4ff92SAndroid Build Coastguard Worker std::vector<float> outputExpectedData(inputData.size());
83*89c4ff92SAndroid Build Coastguard Worker std::transform(inputData.begin(), inputData.end(), outputExpectedData.begin(), f);
84*89c4ff92SAndroid Build Coastguard Worker
85*89c4ff92SAndroid Build Coastguard Worker ActivationTest(tflite::BuiltinOperator_LOGISTIC,
86*89c4ff92SAndroid Build Coastguard Worker backends,
87*89c4ff92SAndroid Build Coastguard Worker inputData,
88*89c4ff92SAndroid Build Coastguard Worker outputExpectedData);
89*89c4ff92SAndroid Build Coastguard Worker }
90*89c4ff92SAndroid Build Coastguard Worker
91*89c4ff92SAndroid Build Coastguard Worker
ActivationTanHTest(std::vector<armnn::BackendId> & backends)92*89c4ff92SAndroid Build Coastguard Worker void ActivationTanHTest(std::vector<armnn::BackendId>& backends)
93*89c4ff92SAndroid Build Coastguard Worker {
94*89c4ff92SAndroid Build Coastguard Worker std::vector<float> inputData = {
95*89c4ff92SAndroid Build Coastguard Worker -0.1f, -0.2f, -0.3f, -0.4f,
96*89c4ff92SAndroid Build Coastguard Worker 0.1f, 0.2f, 0.3f, 0.4f,
97*89c4ff92SAndroid Build Coastguard Worker -1.0f, -2.0f, -3.0f, -4.0f,
98*89c4ff92SAndroid Build Coastguard Worker 1.0f, 2.0f, 3.0f, 4.0f
99*89c4ff92SAndroid Build Coastguard Worker };
100*89c4ff92SAndroid Build Coastguard Worker
101*89c4ff92SAndroid Build Coastguard Worker // Calculate output values for input.
102*89c4ff92SAndroid Build Coastguard Worker auto f = [](float value)
103*89c4ff92SAndroid Build Coastguard Worker {
104*89c4ff92SAndroid Build Coastguard Worker return tanhf(value);
105*89c4ff92SAndroid Build Coastguard Worker };
106*89c4ff92SAndroid Build Coastguard Worker std::vector<float> outputExpectedData(inputData.size());
107*89c4ff92SAndroid Build Coastguard Worker std::transform(inputData.begin(), inputData.end(), outputExpectedData.begin(), f);
108*89c4ff92SAndroid Build Coastguard Worker
109*89c4ff92SAndroid Build Coastguard Worker ActivationTest(tflite::BuiltinOperator_TANH,
110*89c4ff92SAndroid Build Coastguard Worker backends,
111*89c4ff92SAndroid Build Coastguard Worker inputData,
112*89c4ff92SAndroid Build Coastguard Worker outputExpectedData);
113*89c4ff92SAndroid Build Coastguard Worker }
114*89c4ff92SAndroid Build Coastguard Worker
ActivationEluTest(std::vector<armnn::BackendId> & backends)115*89c4ff92SAndroid Build Coastguard Worker void ActivationEluTest(std::vector<armnn::BackendId>& backends)
116*89c4ff92SAndroid Build Coastguard Worker {
117*89c4ff92SAndroid Build Coastguard Worker std::vector<float> inputData = {
118*89c4ff92SAndroid Build Coastguard Worker -0.1f, -0.2f, -0.3f, -0.4f,
119*89c4ff92SAndroid Build Coastguard Worker 0.1f, 0.2f, 0.3f, 0.4f,
120*89c4ff92SAndroid Build Coastguard Worker -1.0f, -2.0f, -3.0f, -4.0f,
121*89c4ff92SAndroid Build Coastguard Worker 1.0f, 2.0f, 3.0f, 4.0f
122*89c4ff92SAndroid Build Coastguard Worker };
123*89c4ff92SAndroid Build Coastguard Worker
124*89c4ff92SAndroid Build Coastguard Worker // Calculate output values for input.
125*89c4ff92SAndroid Build Coastguard Worker auto f = [](float value)
126*89c4ff92SAndroid Build Coastguard Worker {
127*89c4ff92SAndroid Build Coastguard Worker if (value < 0)
128*89c4ff92SAndroid Build Coastguard Worker {
129*89c4ff92SAndroid Build Coastguard Worker // alpha * (exp(x) - 1)
130*89c4ff92SAndroid Build Coastguard Worker return 1 * (std::exp(value) - 1);
131*89c4ff92SAndroid Build Coastguard Worker }
132*89c4ff92SAndroid Build Coastguard Worker return value;
133*89c4ff92SAndroid Build Coastguard Worker };
134*89c4ff92SAndroid Build Coastguard Worker std::vector<float> outputExpectedData(inputData.size());
135*89c4ff92SAndroid Build Coastguard Worker std::transform(inputData.begin(), inputData.end(), outputExpectedData.begin(), f);
136*89c4ff92SAndroid Build Coastguard Worker
137*89c4ff92SAndroid Build Coastguard Worker ActivationTest(tflite::BuiltinOperator_ELU,
138*89c4ff92SAndroid Build Coastguard Worker backends,
139*89c4ff92SAndroid Build Coastguard Worker inputData,
140*89c4ff92SAndroid Build Coastguard Worker outputExpectedData);
141*89c4ff92SAndroid Build Coastguard Worker }
142*89c4ff92SAndroid Build Coastguard Worker
ActivationHardSwishTest(std::vector<armnn::BackendId> & backends)143*89c4ff92SAndroid Build Coastguard Worker void ActivationHardSwishTest(std::vector<armnn::BackendId>& backends)
144*89c4ff92SAndroid Build Coastguard Worker {
145*89c4ff92SAndroid Build Coastguard Worker std::vector<float> inputData = {
146*89c4ff92SAndroid Build Coastguard Worker -0.1f, -0.2f, -0.3f, -0.4f,
147*89c4ff92SAndroid Build Coastguard Worker 0.1f, 0.2f, 0.3f, 0.4f,
148*89c4ff92SAndroid Build Coastguard Worker -1.0f, -2.0f, -3.0f, -4.0f,
149*89c4ff92SAndroid Build Coastguard Worker 1.0f, 2.0f, 3.0f, 4.0f
150*89c4ff92SAndroid Build Coastguard Worker };
151*89c4ff92SAndroid Build Coastguard Worker
152*89c4ff92SAndroid Build Coastguard Worker // Calculate output values for input.
153*89c4ff92SAndroid Build Coastguard Worker auto f = [](float x)
154*89c4ff92SAndroid Build Coastguard Worker {
155*89c4ff92SAndroid Build Coastguard Worker // Break down the calculation to help with verification.
156*89c4ff92SAndroid Build Coastguard Worker // hard_swish(x) = x * relu6(x+3) / 6
157*89c4ff92SAndroid Build Coastguard Worker // relu6(x) = min(max(x,0),6)
158*89c4ff92SAndroid Build Coastguard Worker float reLu6_step1 = std::max((x + 3),0.0f);
159*89c4ff92SAndroid Build Coastguard Worker float reLu6Complete = std::min(reLu6_step1, 6.0f);
160*89c4ff92SAndroid Build Coastguard Worker float hardSwish_step1 = x * reLu6Complete;
161*89c4ff92SAndroid Build Coastguard Worker float result = hardSwish_step1 / 6;
162*89c4ff92SAndroid Build Coastguard Worker return result;
163*89c4ff92SAndroid Build Coastguard Worker };
164*89c4ff92SAndroid Build Coastguard Worker std::vector<float> outputExpectedData(inputData.size());
165*89c4ff92SAndroid Build Coastguard Worker std::transform(inputData.begin(), inputData.end(), outputExpectedData.begin(), f);
166*89c4ff92SAndroid Build Coastguard Worker
167*89c4ff92SAndroid Build Coastguard Worker ActivationTest(tflite::BuiltinOperator_HARD_SWISH,
168*89c4ff92SAndroid Build Coastguard Worker backends,
169*89c4ff92SAndroid Build Coastguard Worker inputData,
170*89c4ff92SAndroid Build Coastguard Worker outputExpectedData);
171*89c4ff92SAndroid Build Coastguard Worker }
172*89c4ff92SAndroid Build Coastguard Worker
173*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("Activation_CpuRefTests")
174*89c4ff92SAndroid Build Coastguard Worker {
175*89c4ff92SAndroid Build Coastguard Worker
176*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_ReLu_CpuRef_Test")
177*89c4ff92SAndroid Build Coastguard Worker {
178*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
179*89c4ff92SAndroid Build Coastguard Worker ActivationReLuTest(backends);
180*89c4ff92SAndroid Build Coastguard Worker }
181*89c4ff92SAndroid Build Coastguard Worker
182*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_Bounded_Relu6_CpuRef_Test")
183*89c4ff92SAndroid Build Coastguard Worker {
184*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
185*89c4ff92SAndroid Build Coastguard Worker ActivationBoundedReluTest(backends);
186*89c4ff92SAndroid Build Coastguard Worker }
187*89c4ff92SAndroid Build Coastguard Worker
188*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_Sigmoid_CpuRef_Test")
189*89c4ff92SAndroid Build Coastguard Worker {
190*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
191*89c4ff92SAndroid Build Coastguard Worker ActivationSigmoidTest(backends);
192*89c4ff92SAndroid Build Coastguard Worker }
193*89c4ff92SAndroid Build Coastguard Worker
194*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_TanH_CpuRef_Test")
195*89c4ff92SAndroid Build Coastguard Worker {
196*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
197*89c4ff92SAndroid Build Coastguard Worker ActivationTanHTest(backends);
198*89c4ff92SAndroid Build Coastguard Worker }
199*89c4ff92SAndroid Build Coastguard Worker
200*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_Elu_CpuRef_Test")
201*89c4ff92SAndroid Build Coastguard Worker {
202*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
203*89c4ff92SAndroid Build Coastguard Worker ActivationEluTest(backends);
204*89c4ff92SAndroid Build Coastguard Worker }
205*89c4ff92SAndroid Build Coastguard Worker
206*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_HardSwish_CpuRef_Test")
207*89c4ff92SAndroid Build Coastguard Worker {
208*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
209*89c4ff92SAndroid Build Coastguard Worker ActivationHardSwishTest(backends);
210*89c4ff92SAndroid Build Coastguard Worker }
211*89c4ff92SAndroid Build Coastguard Worker
212*89c4ff92SAndroid Build Coastguard Worker }
213*89c4ff92SAndroid Build Coastguard Worker
214*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("Activation_CpuAccTests")
215*89c4ff92SAndroid Build Coastguard Worker {
216*89c4ff92SAndroid Build Coastguard Worker
217*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_ReLu_CpuAcc_Test")
218*89c4ff92SAndroid Build Coastguard Worker {
219*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
220*89c4ff92SAndroid Build Coastguard Worker ActivationReLuTest(backends);
221*89c4ff92SAndroid Build Coastguard Worker }
222*89c4ff92SAndroid Build Coastguard Worker
223*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_Bounded_Relu6_CpuAcc_Test")
224*89c4ff92SAndroid Build Coastguard Worker {
225*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
226*89c4ff92SAndroid Build Coastguard Worker ActivationBoundedReluTest(backends);
227*89c4ff92SAndroid Build Coastguard Worker }
228*89c4ff92SAndroid Build Coastguard Worker
229*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_Sigmoid_CpuAcc_Test")
230*89c4ff92SAndroid Build Coastguard Worker {
231*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
232*89c4ff92SAndroid Build Coastguard Worker ActivationSigmoidTest(backends);
233*89c4ff92SAndroid Build Coastguard Worker }
234*89c4ff92SAndroid Build Coastguard Worker
235*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_TanH_CpuAcc_Test")
236*89c4ff92SAndroid Build Coastguard Worker {
237*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
238*89c4ff92SAndroid Build Coastguard Worker ActivationTanHTest(backends);
239*89c4ff92SAndroid Build Coastguard Worker }
240*89c4ff92SAndroid Build Coastguard Worker
241*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_Elu_CpuAcc_Test")
242*89c4ff92SAndroid Build Coastguard Worker {
243*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
244*89c4ff92SAndroid Build Coastguard Worker ActivationEluTest(backends);
245*89c4ff92SAndroid Build Coastguard Worker }
246*89c4ff92SAndroid Build Coastguard Worker
247*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_HardSwish_CpuAcc_Test")
248*89c4ff92SAndroid Build Coastguard Worker {
249*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
250*89c4ff92SAndroid Build Coastguard Worker ActivationHardSwishTest(backends);
251*89c4ff92SAndroid Build Coastguard Worker }
252*89c4ff92SAndroid Build Coastguard Worker
253*89c4ff92SAndroid Build Coastguard Worker }
254*89c4ff92SAndroid Build Coastguard Worker
255*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("Activation_GpuAccTests")
256*89c4ff92SAndroid Build Coastguard Worker {
257*89c4ff92SAndroid Build Coastguard Worker
258*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_ReLu_GpuAcc_Test")
259*89c4ff92SAndroid Build Coastguard Worker {
260*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
261*89c4ff92SAndroid Build Coastguard Worker ActivationReLuTest(backends);
262*89c4ff92SAndroid Build Coastguard Worker }
263*89c4ff92SAndroid Build Coastguard Worker
264*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_Bounded_Relu6_GpuAcc_Test")
265*89c4ff92SAndroid Build Coastguard Worker {
266*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
267*89c4ff92SAndroid Build Coastguard Worker ActivationBoundedReluTest(backends);
268*89c4ff92SAndroid Build Coastguard Worker }
269*89c4ff92SAndroid Build Coastguard Worker
270*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_Sigmoid_GpuAcc_Test")
271*89c4ff92SAndroid Build Coastguard Worker {
272*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
273*89c4ff92SAndroid Build Coastguard Worker ActivationSigmoidTest(backends);
274*89c4ff92SAndroid Build Coastguard Worker }
275*89c4ff92SAndroid Build Coastguard Worker
276*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_TanH_GpuAcc_Test")
277*89c4ff92SAndroid Build Coastguard Worker {
278*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
279*89c4ff92SAndroid Build Coastguard Worker ActivationTanHTest(backends);
280*89c4ff92SAndroid Build Coastguard Worker }
281*89c4ff92SAndroid Build Coastguard Worker
282*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_Elu_GpuAcc_Test")
283*89c4ff92SAndroid Build Coastguard Worker {
284*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
285*89c4ff92SAndroid Build Coastguard Worker ActivationEluTest(backends);
286*89c4ff92SAndroid Build Coastguard Worker }
287*89c4ff92SAndroid Build Coastguard Worker
288*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Activation_HardSwish_GpuAcc_Test")
289*89c4ff92SAndroid Build Coastguard Worker {
290*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
291*89c4ff92SAndroid Build Coastguard Worker ActivationHardSwishTest(backends);
292*89c4ff92SAndroid Build Coastguard Worker }
293*89c4ff92SAndroid Build Coastguard Worker
294*89c4ff92SAndroid Build Coastguard Worker }
295*89c4ff92SAndroid Build Coastguard Worker
296*89c4ff92SAndroid Build Coastguard Worker } // namespace armnnDelegate