summaryrefslogtreecommitdiffstats
blob: 7fb269685b5a2a94a482c84f6fb236968f47456f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
/*
 * Copyright (C) 2018 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef VTS_HAL_NEURALNETWORKS_V1_1_VTS_FUNCTIONAL_MODELS_H
#define VTS_HAL_NEURALNETWORKS_V1_1_VTS_FUNCTIONAL_MODELS_H

#define LOG_TAG "neuralnetworks_hidl_hal_test"

#include "TestHarness.h"

#include <android/hardware/neuralnetworks/1.0/types.h>
#include <android/hardware/neuralnetworks/1.1/types.h>

namespace android {
namespace hardware {
namespace neuralnetworks {
namespace V1_1 {
namespace vts {
namespace functional {

using MixedTypedExample = generated_tests::MixedTypedExampleType;

#define FOR_EACH_TEST_MODEL(FN)                                  \
    FN(add)                                                      \
    FN(add_broadcast_quant8)                                     \
    FN(add_quant8)                                               \
    FN(add_relaxed)                                              \
    FN(avg_pool_float_1)                                         \
    FN(avg_pool_float_1_relaxed)                                 \
    FN(avg_pool_float_2)                                         \
    FN(avg_pool_float_2_relaxed)                                 \
    FN(avg_pool_float_3)                                         \
    FN(avg_pool_float_3_relaxed)                                 \
    FN(avg_pool_float_4)                                         \
    FN(avg_pool_float_4_relaxed)                                 \
    FN(avg_pool_float_5)                                         \
    FN(avg_pool_float_5_relaxed)                                 \
    FN(avg_pool_quant8_1)                                        \
    FN(avg_pool_quant8_2)                                        \
    FN(avg_pool_quant8_3)                                        \
    FN(avg_pool_quant8_4)                                        \
    FN(avg_pool_quant8_5)                                        \
    FN(batch_to_space)                                           \
    FN(batch_to_space_float_1)                                   \
    FN(batch_to_space_float_1_relaxed)                           \
    FN(batch_to_space_quant8_1)                                  \
    FN(batch_to_space_relaxed)                                   \
    FN(concat_float_1)                                           \
    FN(concat_float_1_relaxed)                                   \
    FN(concat_float_2)                                           \
    FN(concat_float_2_relaxed)                                   \
    FN(concat_float_3)                                           \
    FN(concat_float_3_relaxed)                                   \
    FN(concat_quant8_1)                                          \
    FN(concat_quant8_2)                                          \
    FN(concat_quant8_3)                                          \
    FN(conv_1_h3_w2_SAME)                                        \
    FN(conv_1_h3_w2_SAME_relaxed)                                \
    FN(conv_1_h3_w2_VALID)                                       \
    FN(conv_1_h3_w2_VALID_relaxed)                               \
    FN(conv_3_h3_w2_SAME)                                        \
    FN(conv_3_h3_w2_SAME_relaxed)                                \
    FN(conv_3_h3_w2_VALID)                                       \
    FN(conv_3_h3_w2_VALID_relaxed)                               \
    FN(conv_float)                                               \
    FN(conv_float_2)                                             \
    FN(conv_float_2_relaxed)                                     \
    FN(conv_float_channels)                                      \
    FN(conv_float_channels_relaxed)                              \
    FN(conv_float_channels_weights_as_inputs)                    \
    FN(conv_float_channels_weights_as_inputs_relaxed)            \
    FN(conv_float_large)                                         \
    FN(conv_float_large_relaxed)                                 \
    FN(conv_float_large_weights_as_inputs)                       \
    FN(conv_float_large_weights_as_inputs_relaxed)               \
    FN(conv_float_relaxed)                                       \
    FN(conv_float_weights_as_inputs)                             \
    FN(conv_float_weights_as_inputs_relaxed)                     \
    FN(conv_quant8)                                              \
    FN(conv_quant8_2)                                            \
    FN(conv_quant8_channels)                                     \
    FN(conv_quant8_channels_weights_as_inputs)                   \
    FN(conv_quant8_large)                                        \
    FN(conv_quant8_large_weights_as_inputs)                      \
    FN(conv_quant8_overflow)                                     \
    FN(conv_quant8_overflow_weights_as_inputs)                   \
    FN(conv_quant8_weights_as_inputs)                            \
    FN(depth_to_space_float_1)                                   \
    FN(depth_to_space_float_1_relaxed)                           \
    FN(depth_to_space_float_2)                                   \
    FN(depth_to_space_float_2_relaxed)                           \
    FN(depth_to_space_float_3)                                   \
    FN(depth_to_space_float_3_relaxed)                           \
    FN(depth_to_space_quant8_1)                                  \
    FN(depth_to_space_quant8_2)                                  \
    FN(depthwise_conv)                                           \
    FN(depthwise_conv2d_float)                                   \
    FN(depthwise_conv2d_float_2)                                 \
    FN(depthwise_conv2d_float_2_relaxed)                         \
    FN(depthwise_conv2d_float_large)                             \
    FN(depthwise_conv2d_float_large_2)                           \
    FN(depthwise_conv2d_float_large_2_relaxed)                   \
    FN(depthwise_conv2d_float_large_2_weights_as_inputs)         \
    FN(depthwise_conv2d_float_large_2_weights_as_inputs_relaxed) \
    FN(depthwise_conv2d_float_large_relaxed)                     \
    FN(depthwise_conv2d_float_large_weights_as_inputs)           \
    FN(depthwise_conv2d_float_large_weights_as_inputs_relaxed)   \
    FN(depthwise_conv2d_float_relaxed)                           \
    FN(depthwise_conv2d_float_weights_as_inputs)                 \
    FN(depthwise_conv2d_float_weights_as_inputs_relaxed)         \
    FN(depthwise_conv2d_quant8)                                  \
    FN(depthwise_conv2d_quant8_2)                                \
    FN(depthwise_conv2d_quant8_large)                            \
    FN(depthwise_conv2d_quant8_large_weights_as_inputs)          \
    FN(depthwise_conv2d_quant8_weights_as_inputs)                \
    FN(depthwise_conv_relaxed)                                   \
    FN(dequantize)                                               \
    FN(dequantize_relaxed)                                       \
    FN(div)                                                      \
    FN(div_broadcast_float)                                      \
    FN(div_broadcast_float_relaxed)                              \
    FN(div_relaxed)                                              \
    FN(embedding_lookup)                                         \
    FN(embedding_lookup_relaxed)                                 \
    FN(floor)                                                    \
    FN(floor_relaxed)                                            \
    FN(fully_connected_float)                                    \
    FN(fully_connected_float_2)                                  \
    FN(fully_connected_float_2_relaxed)                          \
    FN(fully_connected_float_4d_simple)                          \
    FN(fully_connected_float_4d_simple_relaxed)                  \
    FN(fully_connected_float_large)                              \
    FN(fully_connected_float_large_relaxed)                      \
    FN(fully_connected_float_large_weights_as_inputs)            \
    FN(fully_connected_float_large_weights_as_inputs_relaxed)    \
    FN(fully_connected_float_relaxed)                            \
    FN(fully_connected_float_weights_as_inputs)                  \
    FN(fully_connected_float_weights_as_inputs_relaxed)          \
    FN(fully_connected_quant8)                                   \
    FN(fully_connected_quant8_2)                                 \
    FN(fully_connected_quant8_large)                             \
    FN(fully_connected_quant8_large_weights_as_inputs)           \
    FN(fully_connected_quant8_weights_as_inputs)                 \
    FN(hashtable_lookup_float)                                   \
    FN(hashtable_lookup_float_relaxed)                           \
    FN(hashtable_lookup_quant8)                                  \
    FN(l2_normalization)                                         \
    FN(l2_normalization_2)                                       \
    FN(l2_normalization_2_relaxed)                               \
    FN(l2_normalization_large)                                   \
    FN(l2_normalization_large_relaxed)                           \
    FN(l2_normalization_relaxed)                                 \
    FN(l2_pool_float)                                            \
    FN(l2_pool_float_2)                                          \
    FN(l2_pool_float_2_relaxed)                                  \
    FN(l2_pool_float_large)                                      \
    FN(l2_pool_float_large_relaxed)                              \
    FN(l2_pool_float_relaxed)                                    \
    FN(local_response_norm_float_1)                              \
    FN(local_response_norm_float_1_relaxed)                      \
    FN(local_response_norm_float_2)                              \
    FN(local_response_norm_float_2_relaxed)                      \
    FN(local_response_norm_float_3)                              \
    FN(local_response_norm_float_3_relaxed)                      \
    FN(local_response_norm_float_4)                              \
    FN(local_response_norm_float_4_relaxed)                      \
    FN(logistic_float_1)                                         \
    FN(logistic_float_1_relaxed)                                 \
    FN(logistic_float_2)                                         \
    FN(logistic_float_2_relaxed)                                 \
    FN(logistic_quant8_1)                                        \
    FN(logistic_quant8_2)                                        \
    FN(lsh_projection)                                           \
    FN(lsh_projection_2)                                         \
    FN(lsh_projection_2_relaxed)                                 \
    FN(lsh_projection_relaxed)                                   \
    FN(lsh_projection_weights_as_inputs)                         \
    FN(lsh_projection_weights_as_inputs_relaxed)                 \
    FN(lstm)                                                     \
    FN(lstm2)                                                    \
    FN(lstm2_relaxed)                                            \
    FN(lstm2_state)                                              \
    FN(lstm2_state2)                                             \
    FN(lstm2_state2_relaxed)                                     \
    FN(lstm2_state_relaxed)                                      \
    FN(lstm3)                                                    \
    FN(lstm3_relaxed)                                            \
    FN(lstm3_state)                                              \
    FN(lstm3_state2)                                             \
    FN(lstm3_state2_relaxed)                                     \
    FN(lstm3_state3)                                             \
    FN(lstm3_state3_relaxed)                                     \
    FN(lstm3_state_relaxed)                                      \
    FN(lstm_relaxed)                                             \
    FN(lstm_state)                                               \
    FN(lstm_state2)                                              \
    FN(lstm_state2_relaxed)                                      \
    FN(lstm_state_relaxed)                                       \
    FN(max_pool_float_1)                                         \
    FN(max_pool_float_1_relaxed)                                 \
    FN(max_pool_float_2)                                         \
    FN(max_pool_float_2_relaxed)                                 \
    FN(max_pool_float_3)                                         \
    FN(max_pool_float_3_relaxed)                                 \
    FN(max_pool_float_4)                                         \
    FN(max_pool_float_4_relaxed)                                 \
    FN(max_pool_quant8_1)                                        \
    FN(max_pool_quant8_2)                                        \
    FN(max_pool_quant8_3)                                        \
    FN(max_pool_quant8_4)                                        \
    FN(mean)                                                     \
    FN(mean_float_1)                                             \
    FN(mean_float_1_relaxed)                                     \
    FN(mean_float_2)                                             \
    FN(mean_float_2_relaxed)                                     \
    FN(mean_quant8_1)                                            \
    FN(mean_quant8_2)                                            \
    FN(mean_relaxed)                                             \
    FN(mobilenet_224_gender_basic_fixed)                         \
    FN(mobilenet_224_gender_basic_fixed_relaxed)                 \
    FN(mobilenet_quantized)                                      \
    FN(mul)                                                      \
    FN(mul_broadcast_quant8)                                     \
    FN(mul_quant8)                                               \
    FN(mul_relaxed)                                              \
    FN(mul_relu)                                                 \
    FN(mul_relu_relaxed)                                         \
    FN(pad)                                                      \
    FN(pad_float_1)                                              \
    FN(pad_float_1_relaxed)                                      \
    FN(pad_relaxed)                                              \
    FN(relu1_float_1)                                            \
    FN(relu1_float_1_relaxed)                                    \
    FN(relu1_float_2)                                            \
    FN(relu1_float_2_relaxed)                                    \
    FN(relu1_quant8_1)                                           \
    FN(relu1_quant8_2)                                           \
    FN(relu6_float_1)                                            \
    FN(relu6_float_1_relaxed)                                    \
    FN(relu6_float_2)                                            \
    FN(relu6_float_2_relaxed)                                    \
    FN(relu6_quant8_1)                                           \
    FN(relu6_quant8_2)                                           \
    FN(relu_float_1)                                             \
    FN(relu_float_1_relaxed)                                     \
    FN(relu_float_2)                                             \
    FN(relu_float_2_relaxed)                                     \
    FN(relu_quant8_1)                                            \
    FN(relu_quant8_2)                                            \
    FN(reshape)                                                  \
    FN(reshape_quant8)                                           \
    FN(reshape_quant8_weights_as_inputs)                         \
    FN(reshape_relaxed)                                          \
    FN(reshape_weights_as_inputs)                                \
    FN(reshape_weights_as_inputs_relaxed)                        \
    FN(resize_bilinear)                                          \
    FN(resize_bilinear_2)                                        \
    FN(resize_bilinear_2_relaxed)                                \
    FN(resize_bilinear_relaxed)                                  \
    FN(rnn)                                                      \
    FN(rnn_relaxed)                                              \
    FN(rnn_state)                                                \
    FN(rnn_state_relaxed)                                        \
    FN(softmax_float_1)                                          \
    FN(softmax_float_1_relaxed)                                  \
    FN(softmax_float_2)                                          \
    FN(softmax_float_2_relaxed)                                  \
    FN(softmax_quant8_1)                                         \
    FN(softmax_quant8_2)                                         \
    FN(space_to_batch)                                           \
    FN(space_to_batch_float_1)                                   \
    FN(space_to_batch_float_1_relaxed)                           \
    FN(space_to_batch_float_2)                                   \
    FN(space_to_batch_float_2_relaxed)                           \
    FN(space_to_batch_float_3)                                   \
    FN(space_to_batch_float_3_relaxed)                           \
    FN(space_to_batch_quant8_1)                                  \
    FN(space_to_batch_quant8_2)                                  \
    FN(space_to_batch_quant8_3)                                  \
    FN(space_to_batch_relaxed)                                   \
    FN(space_to_depth_float_1)                                   \
    FN(space_to_depth_float_1_relaxed)                           \
    FN(space_to_depth_float_2)                                   \
    FN(space_to_depth_float_2_relaxed)                           \
    FN(space_to_depth_float_3)                                   \
    FN(space_to_depth_float_3_relaxed)                           \
    FN(space_to_depth_quant8_1)                                  \
    FN(space_to_depth_quant8_2)                                  \
    FN(squeeze)                                                  \
    FN(squeeze_float_1)                                          \
    FN(squeeze_float_1_relaxed)                                  \
    FN(squeeze_quant8_1)                                         \
    FN(squeeze_relaxed)                                          \
    FN(strided_slice)                                            \
    FN(strided_slice_float_1)                                    \
    FN(strided_slice_float_10)                                   \
    FN(strided_slice_float_10_relaxed)                           \
    FN(strided_slice_float_11)                                   \
    FN(strided_slice_float_11_relaxed)                           \
    FN(strided_slice_float_1_relaxed)                            \
    FN(strided_slice_float_2)                                    \
    FN(strided_slice_float_2_relaxed)                            \
    FN(strided_slice_float_3)                                    \
    FN(strided_slice_float_3_relaxed)                            \
    FN(strided_slice_float_4)                                    \
    FN(strided_slice_float_4_relaxed)                            \
    FN(strided_slice_float_5)                                    \
    FN(strided_slice_float_5_relaxed)                            \
    FN(strided_slice_float_6)                                    \
    FN(strided_slice_float_6_relaxed)                            \
    FN(strided_slice_float_7)                                    \
    FN(strided_slice_float_7_relaxed)                            \
    FN(strided_slice_float_8)                                    \
    FN(strided_slice_float_8_relaxed)                            \
    FN(strided_slice_float_9)                                    \
    FN(strided_slice_float_9_relaxed)                            \
    FN(strided_slice_qaunt8_10)                                  \
    FN(strided_slice_qaunt8_11)                                  \
    FN(strided_slice_quant8_1)                                   \
    FN(strided_slice_quant8_2)                                   \
    FN(strided_slice_quant8_3)                                   \
    FN(strided_slice_quant8_4)                                   \
    FN(strided_slice_quant8_5)                                   \
    FN(strided_slice_quant8_6)                                   \
    FN(strided_slice_quant8_7)                                   \
    FN(strided_slice_quant8_8)                                   \
    FN(strided_slice_quant8_9)                                   \
    FN(strided_slice_relaxed)                                    \
    FN(sub)                                                      \
    FN(sub_broadcast_float)                                      \
    FN(sub_broadcast_float_relaxed)                              \
    FN(sub_relaxed)                                              \
    FN(svdf)                                                     \
    FN(svdf2)                                                    \
    FN(svdf2_relaxed)                                            \
    FN(svdf_relaxed)                                             \
    FN(svdf_state)                                               \
    FN(svdf_state_relaxed)                                       \
    FN(tanh)                                                     \
    FN(tanh_relaxed)                                             \
    FN(transpose)                                                \
    FN(transpose_float_1)                                        \
    FN(transpose_float_1_relaxed)                                \
    FN(transpose_quant8_1)                                       \
    FN(transpose_relaxed)

#define FORWARD_DECLARE_GENERATED_OBJECTS(function) \
    namespace function {                            \
    extern std::vector<MixedTypedExample> examples; \
    Model createTestModel();                        \
    }

FOR_EACH_TEST_MODEL(FORWARD_DECLARE_GENERATED_OBJECTS)

#undef FORWARD_DECLARE_GENERATED_OBJECTS

}  // namespace functional
}  // namespace vts
}  // namespace V1_1
}  // namespace neuralnetworks
}  // namespace hardware
}  // namespace android

#endif  // VTS_HAL_NEURALNETWORKS_V1_1_VTS_FUNCTIONAL_MODELS_H