blob: 62bc95e4e4b28f5d790536434a11a57cf8d98085 [file] [log] [blame]
Michael Butlerf76acd02018-03-22 16:37:57 -07001/*
2 * Copyright (C) 2018 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef VTS_HAL_NEURALNETWORKS_V1_1_VTS_FUNCTIONAL_MODELS_H
18#define VTS_HAL_NEURALNETWORKS_V1_1_VTS_FUNCTIONAL_MODELS_H
19
20#define LOG_TAG "neuralnetworks_hidl_hal_test"
21
22#include "TestHarness.h"
23
24#include <android/hardware/neuralnetworks/1.0/types.h>
25#include <android/hardware/neuralnetworks/1.1/types.h>
26
27namespace android {
28namespace hardware {
29namespace neuralnetworks {
30namespace V1_1 {
31namespace vts {
32namespace functional {
33
Michael K. Sandersda3bdbc2018-10-19 14:39:09 +010034using MixedTypedExample = test_helper::MixedTypedExample;
Michael Butlerf76acd02018-03-22 16:37:57 -070035
Michael Butlerf2036fd2018-04-23 12:51:03 -070036#define FOR_EACH_TEST_MODEL(FN) \
37 FN(add) \
38 FN(add_broadcast_quant8) \
39 FN(add_quant8) \
40 FN(add_relaxed) \
41 FN(avg_pool_float_1) \
42 FN(avg_pool_float_1_relaxed) \
43 FN(avg_pool_float_2) \
44 FN(avg_pool_float_2_relaxed) \
45 FN(avg_pool_float_3) \
46 FN(avg_pool_float_3_relaxed) \
47 FN(avg_pool_float_4) \
48 FN(avg_pool_float_4_relaxed) \
49 FN(avg_pool_float_5) \
50 FN(avg_pool_float_5_relaxed) \
51 FN(avg_pool_quant8_1) \
52 FN(avg_pool_quant8_2) \
53 FN(avg_pool_quant8_3) \
54 FN(avg_pool_quant8_4) \
55 FN(avg_pool_quant8_5) \
56 FN(batch_to_space) \
57 FN(batch_to_space_float_1) \
58 FN(batch_to_space_float_1_relaxed) \
59 FN(batch_to_space_quant8_1) \
60 FN(batch_to_space_relaxed) \
61 FN(concat_float_1) \
62 FN(concat_float_1_relaxed) \
63 FN(concat_float_2) \
64 FN(concat_float_2_relaxed) \
65 FN(concat_float_3) \
66 FN(concat_float_3_relaxed) \
67 FN(concat_quant8_1) \
68 FN(concat_quant8_2) \
69 FN(concat_quant8_3) \
70 FN(conv_1_h3_w2_SAME) \
71 FN(conv_1_h3_w2_SAME_relaxed) \
72 FN(conv_1_h3_w2_VALID) \
73 FN(conv_1_h3_w2_VALID_relaxed) \
74 FN(conv_3_h3_w2_SAME) \
75 FN(conv_3_h3_w2_SAME_relaxed) \
76 FN(conv_3_h3_w2_VALID) \
77 FN(conv_3_h3_w2_VALID_relaxed) \
78 FN(conv_float) \
79 FN(conv_float_2) \
80 FN(conv_float_2_relaxed) \
81 FN(conv_float_channels) \
82 FN(conv_float_channels_relaxed) \
83 FN(conv_float_channels_weights_as_inputs) \
84 FN(conv_float_channels_weights_as_inputs_relaxed) \
85 FN(conv_float_large) \
86 FN(conv_float_large_relaxed) \
87 FN(conv_float_large_weights_as_inputs) \
88 FN(conv_float_large_weights_as_inputs_relaxed) \
89 FN(conv_float_relaxed) \
90 FN(conv_float_weights_as_inputs) \
91 FN(conv_float_weights_as_inputs_relaxed) \
92 FN(conv_quant8) \
93 FN(conv_quant8_2) \
94 FN(conv_quant8_channels) \
95 FN(conv_quant8_channels_weights_as_inputs) \
96 FN(conv_quant8_large) \
97 FN(conv_quant8_large_weights_as_inputs) \
98 FN(conv_quant8_overflow) \
99 FN(conv_quant8_overflow_weights_as_inputs) \
100 FN(conv_quant8_weights_as_inputs) \
101 FN(depth_to_space_float_1) \
102 FN(depth_to_space_float_1_relaxed) \
103 FN(depth_to_space_float_2) \
104 FN(depth_to_space_float_2_relaxed) \
105 FN(depth_to_space_float_3) \
106 FN(depth_to_space_float_3_relaxed) \
107 FN(depth_to_space_quant8_1) \
108 FN(depth_to_space_quant8_2) \
109 FN(depthwise_conv) \
110 FN(depthwise_conv2d_float) \
111 FN(depthwise_conv2d_float_2) \
112 FN(depthwise_conv2d_float_2_relaxed) \
113 FN(depthwise_conv2d_float_large) \
114 FN(depthwise_conv2d_float_large_2) \
115 FN(depthwise_conv2d_float_large_2_relaxed) \
116 FN(depthwise_conv2d_float_large_2_weights_as_inputs) \
117 FN(depthwise_conv2d_float_large_2_weights_as_inputs_relaxed) \
118 FN(depthwise_conv2d_float_large_relaxed) \
119 FN(depthwise_conv2d_float_large_weights_as_inputs) \
120 FN(depthwise_conv2d_float_large_weights_as_inputs_relaxed) \
121 FN(depthwise_conv2d_float_relaxed) \
122 FN(depthwise_conv2d_float_weights_as_inputs) \
123 FN(depthwise_conv2d_float_weights_as_inputs_relaxed) \
124 FN(depthwise_conv2d_quant8) \
125 FN(depthwise_conv2d_quant8_2) \
126 FN(depthwise_conv2d_quant8_large) \
127 FN(depthwise_conv2d_quant8_large_weights_as_inputs) \
128 FN(depthwise_conv2d_quant8_weights_as_inputs) \
129 FN(depthwise_conv_relaxed) \
130 FN(dequantize) \
131 FN(dequantize_relaxed) \
132 FN(div) \
133 FN(div_broadcast_float) \
134 FN(div_broadcast_float_relaxed) \
135 FN(div_relaxed) \
136 FN(embedding_lookup) \
137 FN(embedding_lookup_relaxed) \
138 FN(floor) \
139 FN(floor_relaxed) \
140 FN(fully_connected_float) \
141 FN(fully_connected_float_2) \
142 FN(fully_connected_float_2_relaxed) \
143 FN(fully_connected_float_4d_simple) \
144 FN(fully_connected_float_4d_simple_relaxed) \
145 FN(fully_connected_float_large) \
146 FN(fully_connected_float_large_relaxed) \
147 FN(fully_connected_float_large_weights_as_inputs) \
148 FN(fully_connected_float_large_weights_as_inputs_relaxed) \
149 FN(fully_connected_float_relaxed) \
150 FN(fully_connected_float_weights_as_inputs) \
151 FN(fully_connected_float_weights_as_inputs_relaxed) \
152 FN(fully_connected_quant8) \
153 FN(fully_connected_quant8_2) \
154 FN(fully_connected_quant8_large) \
155 FN(fully_connected_quant8_large_weights_as_inputs) \
156 FN(fully_connected_quant8_weights_as_inputs) \
157 FN(hashtable_lookup_float) \
158 FN(hashtable_lookup_float_relaxed) \
159 FN(hashtable_lookup_quant8) \
160 FN(l2_normalization) \
161 FN(l2_normalization_2) \
162 FN(l2_normalization_2_relaxed) \
163 FN(l2_normalization_large) \
164 FN(l2_normalization_large_relaxed) \
165 FN(l2_normalization_relaxed) \
166 FN(l2_pool_float) \
167 FN(l2_pool_float_2) \
168 FN(l2_pool_float_2_relaxed) \
169 FN(l2_pool_float_large) \
170 FN(l2_pool_float_large_relaxed) \
171 FN(l2_pool_float_relaxed) \
172 FN(local_response_norm_float_1) \
173 FN(local_response_norm_float_1_relaxed) \
174 FN(local_response_norm_float_2) \
175 FN(local_response_norm_float_2_relaxed) \
176 FN(local_response_norm_float_3) \
177 FN(local_response_norm_float_3_relaxed) \
178 FN(local_response_norm_float_4) \
179 FN(local_response_norm_float_4_relaxed) \
180 FN(logistic_float_1) \
181 FN(logistic_float_1_relaxed) \
182 FN(logistic_float_2) \
183 FN(logistic_float_2_relaxed) \
184 FN(logistic_quant8_1) \
185 FN(logistic_quant8_2) \
186 FN(lsh_projection) \
187 FN(lsh_projection_2) \
188 FN(lsh_projection_2_relaxed) \
189 FN(lsh_projection_relaxed) \
190 FN(lsh_projection_weights_as_inputs) \
191 FN(lsh_projection_weights_as_inputs_relaxed) \
192 FN(lstm) \
193 FN(lstm2) \
194 FN(lstm2_relaxed) \
195 FN(lstm2_state) \
196 FN(lstm2_state2) \
197 FN(lstm2_state2_relaxed) \
198 FN(lstm2_state_relaxed) \
199 FN(lstm3) \
200 FN(lstm3_relaxed) \
201 FN(lstm3_state) \
202 FN(lstm3_state2) \
203 FN(lstm3_state2_relaxed) \
204 FN(lstm3_state3) \
205 FN(lstm3_state3_relaxed) \
206 FN(lstm3_state_relaxed) \
207 FN(lstm_relaxed) \
208 FN(lstm_state) \
209 FN(lstm_state2) \
210 FN(lstm_state2_relaxed) \
211 FN(lstm_state_relaxed) \
212 FN(max_pool_float_1) \
213 FN(max_pool_float_1_relaxed) \
214 FN(max_pool_float_2) \
215 FN(max_pool_float_2_relaxed) \
216 FN(max_pool_float_3) \
217 FN(max_pool_float_3_relaxed) \
218 FN(max_pool_float_4) \
219 FN(max_pool_float_4_relaxed) \
220 FN(max_pool_quant8_1) \
221 FN(max_pool_quant8_2) \
222 FN(max_pool_quant8_3) \
223 FN(max_pool_quant8_4) \
224 FN(mean) \
225 FN(mean_float_1) \
226 FN(mean_float_1_relaxed) \
227 FN(mean_float_2) \
228 FN(mean_float_2_relaxed) \
229 FN(mean_quant8_1) \
230 FN(mean_quant8_2) \
231 FN(mean_relaxed) \
232 FN(mobilenet_224_gender_basic_fixed) \
233 FN(mobilenet_224_gender_basic_fixed_relaxed) \
234 FN(mobilenet_quantized) \
235 FN(mul) \
236 FN(mul_broadcast_quant8) \
237 FN(mul_quant8) \
238 FN(mul_relaxed) \
239 FN(mul_relu) \
240 FN(mul_relu_relaxed) \
241 FN(pad) \
242 FN(pad_float_1) \
243 FN(pad_float_1_relaxed) \
244 FN(pad_relaxed) \
245 FN(relu1_float_1) \
246 FN(relu1_float_1_relaxed) \
247 FN(relu1_float_2) \
248 FN(relu1_float_2_relaxed) \
249 FN(relu1_quant8_1) \
250 FN(relu1_quant8_2) \
251 FN(relu6_float_1) \
252 FN(relu6_float_1_relaxed) \
253 FN(relu6_float_2) \
254 FN(relu6_float_2_relaxed) \
255 FN(relu6_quant8_1) \
256 FN(relu6_quant8_2) \
257 FN(relu_float_1) \
258 FN(relu_float_1_relaxed) \
259 FN(relu_float_2) \
260 FN(relu_float_2_relaxed) \
261 FN(relu_quant8_1) \
262 FN(relu_quant8_2) \
263 FN(reshape) \
264 FN(reshape_quant8) \
265 FN(reshape_quant8_weights_as_inputs) \
266 FN(reshape_relaxed) \
267 FN(reshape_weights_as_inputs) \
268 FN(reshape_weights_as_inputs_relaxed) \
269 FN(resize_bilinear) \
270 FN(resize_bilinear_2) \
271 FN(resize_bilinear_2_relaxed) \
272 FN(resize_bilinear_relaxed) \
273 FN(rnn) \
274 FN(rnn_relaxed) \
275 FN(rnn_state) \
276 FN(rnn_state_relaxed) \
277 FN(softmax_float_1) \
278 FN(softmax_float_1_relaxed) \
279 FN(softmax_float_2) \
280 FN(softmax_float_2_relaxed) \
281 FN(softmax_quant8_1) \
282 FN(softmax_quant8_2) \
283 FN(space_to_batch) \
284 FN(space_to_batch_float_1) \
285 FN(space_to_batch_float_1_relaxed) \
286 FN(space_to_batch_float_2) \
287 FN(space_to_batch_float_2_relaxed) \
288 FN(space_to_batch_float_3) \
289 FN(space_to_batch_float_3_relaxed) \
290 FN(space_to_batch_quant8_1) \
291 FN(space_to_batch_quant8_2) \
292 FN(space_to_batch_quant8_3) \
293 FN(space_to_batch_relaxed) \
294 FN(space_to_depth_float_1) \
295 FN(space_to_depth_float_1_relaxed) \
296 FN(space_to_depth_float_2) \
297 FN(space_to_depth_float_2_relaxed) \
298 FN(space_to_depth_float_3) \
299 FN(space_to_depth_float_3_relaxed) \
300 FN(space_to_depth_quant8_1) \
301 FN(space_to_depth_quant8_2) \
302 FN(squeeze) \
303 FN(squeeze_float_1) \
304 FN(squeeze_float_1_relaxed) \
305 FN(squeeze_quant8_1) \
306 FN(squeeze_relaxed) \
307 FN(strided_slice) \
308 FN(strided_slice_float_1) \
309 FN(strided_slice_float_10) \
310 FN(strided_slice_float_10_relaxed) \
311 FN(strided_slice_float_11) \
312 FN(strided_slice_float_11_relaxed) \
313 FN(strided_slice_float_1_relaxed) \
314 FN(strided_slice_float_2) \
315 FN(strided_slice_float_2_relaxed) \
316 FN(strided_slice_float_3) \
317 FN(strided_slice_float_3_relaxed) \
318 FN(strided_slice_float_4) \
319 FN(strided_slice_float_4_relaxed) \
320 FN(strided_slice_float_5) \
321 FN(strided_slice_float_5_relaxed) \
322 FN(strided_slice_float_6) \
323 FN(strided_slice_float_6_relaxed) \
324 FN(strided_slice_float_7) \
325 FN(strided_slice_float_7_relaxed) \
326 FN(strided_slice_float_8) \
327 FN(strided_slice_float_8_relaxed) \
328 FN(strided_slice_float_9) \
329 FN(strided_slice_float_9_relaxed) \
330 FN(strided_slice_qaunt8_10) \
331 FN(strided_slice_qaunt8_11) \
332 FN(strided_slice_quant8_1) \
333 FN(strided_slice_quant8_2) \
334 FN(strided_slice_quant8_3) \
335 FN(strided_slice_quant8_4) \
336 FN(strided_slice_quant8_5) \
337 FN(strided_slice_quant8_6) \
338 FN(strided_slice_quant8_7) \
339 FN(strided_slice_quant8_8) \
340 FN(strided_slice_quant8_9) \
341 FN(strided_slice_relaxed) \
342 FN(sub) \
343 FN(sub_broadcast_float) \
344 FN(sub_broadcast_float_relaxed) \
345 FN(sub_relaxed) \
346 FN(svdf) \
347 FN(svdf2) \
348 FN(svdf2_relaxed) \
349 FN(svdf_relaxed) \
350 FN(svdf_state) \
351 FN(svdf_state_relaxed) \
352 FN(tanh) \
353 FN(tanh_relaxed) \
354 FN(transpose) \
355 FN(transpose_float_1) \
356 FN(transpose_float_1_relaxed) \
357 FN(transpose_quant8_1) \
358 FN(transpose_relaxed)
Michael Butlerf76acd02018-03-22 16:37:57 -0700359
360#define FORWARD_DECLARE_GENERATED_OBJECTS(function) \
361 namespace function { \
362 extern std::vector<MixedTypedExample> examples; \
363 Model createTestModel(); \
364 }
365
366FOR_EACH_TEST_MODEL(FORWARD_DECLARE_GENERATED_OBJECTS)
367
368#undef FORWARD_DECLARE_GENERATED_OBJECTS
369
370} // namespace functional
371} // namespace vts
372} // namespace V1_1
373} // namespace neuralnetworks
374} // namespace hardware
375} // namespace android
376
377#endif // VTS_HAL_NEURALNETWORKS_V1_1_VTS_FUNCTIONAL_MODELS_H