blob: edf5f3438aafc5f24aae0413887816e46d8428dc [file] [log] [blame]
Marat Dukhanc068bb62019-10-04 13:24:39 -07001// Copyright 2019 Google LLC
2//
3// This source code is licensed under the BSD-style license found in the
4// LICENSE file in the root directory of this source tree.
5
6#include <xnnpack.h>
7
8#include <algorithm>
9#include <functional>
10#include <iostream>
11#include <limits>
12#include <random>
13
14#include "models/models.h"
15
16namespace models {
17
18ExecutionPlan MobileNetV2(pthreadpool_t threadpool) {
19 alignas(16) static float v0[150528];
20 alignas(16) static float v1[401408];
21 alignas(16) static float v2[401408];
22 alignas(16) static float v3[200704];
23 alignas(16) static float v4[1204224];
24 alignas(16) static float v5[301056];
25 alignas(16) static float v6[75264];
26 alignas(16) static float v7[451584];
27 alignas(16) static float v8[451584];
28 alignas(16) static float v9[75264];
29 alignas(16) static float v10[75264];
30 alignas(16) static float v11[451584];
31 alignas(16) static float v12[112896];
32 alignas(16) static float v13[25088];
33 alignas(16) static float v14[150528];
34 alignas(16) static float v15[150528];
35 alignas(16) static float v16[25088];
36 alignas(16) static float v17[25088];
37 alignas(16) static float v18[150528];
38 alignas(16) static float v19[150528];
39 alignas(16) static float v20[25088];
40 alignas(16) static float v21[25088];
41 alignas(16) static float v22[150528];
42 alignas(16) static float v23[37632];
43 alignas(16) static float v24[12544];
44 alignas(16) static float v25[75264];
45 alignas(16) static float v26[75264];
46 alignas(16) static float v27[12544];
47 alignas(16) static float v28[12544];
48 alignas(16) static float v29[75264];
49 alignas(16) static float v30[75264];
50 alignas(16) static float v31[12544];
51 alignas(16) static float v32[12544];
52 alignas(16) static float v33[75264];
53 alignas(16) static float v34[75264];
54 alignas(16) static float v35[12544];
55 alignas(16) static float v36[12544];
56 alignas(16) static float v37[75264];
57 alignas(16) static float v38[75264];
58 alignas(16) static float v39[18816];
59 alignas(16) static float v40[112896];
60 alignas(16) static float v41[112896];
61 alignas(16) static float v42[18816];
62 alignas(16) static float v43[18816];
63 alignas(16) static float v44[112896];
64 alignas(16) static float v45[112896];
65 alignas(16) static float v46[18816];
66 alignas(16) static float v47[18816];
67 alignas(16) static float v48[112896];
68 alignas(16) static float v49[28224];
69 alignas(16) static float v50[7840];
70 alignas(16) static float v51[47040];
71 alignas(16) static float v52[47040];
72 alignas(16) static float v53[7840];
73 alignas(16) static float v54[7840];
74 alignas(16) static float v55[47040];
75 alignas(16) static float v56[47040];
76 alignas(16) static float v57[7840];
77 alignas(16) static float v58[7840];
78 alignas(16) static float v59[47040];
79 alignas(16) static float v60[47040];
80 alignas(16) static float v61[15680];
81 alignas(16) static float v62[62720];
82 alignas(16) static float v63[1280];
83 alignas(16) static float v64[1001];
84 alignas(16) static float w65[864];
85 alignas(16) static float w66[32];
86 alignas(16) static float w67[288];
87 alignas(16) static float w68[32];
88 alignas(16) static float w69[512];
89 alignas(16) static float w70[16];
90 alignas(16) static float w71[1536];
91 alignas(16) static float w72[96];
92 alignas(16) static float w73[864];
93 alignas(16) static float w74[96];
94 alignas(16) static float w75[2304];
95 alignas(16) static float w76[24];
96 alignas(16) static float w77[3456];
97 alignas(16) static float w78[144];
98 alignas(16) static float w79[1296];
99 alignas(16) static float w80[144];
100 alignas(16) static float w81[3456];
101 alignas(16) static float w82[24];
102 alignas(16) static float w83[3456];
103 alignas(16) static float w84[144];
104 alignas(16) static float w85[1296];
105 alignas(16) static float w86[144];
106 alignas(16) static float w87[4608];
107 alignas(16) static float w88[32];
108 alignas(16) static float w89[6144];
109 alignas(16) static float w90[192];
110 alignas(16) static float w91[1728];
111 alignas(16) static float w92[192];
112 alignas(16) static float w93[6144];
113 alignas(16) static float w94[32];
114 alignas(16) static float w95[6144];
115 alignas(16) static float w96[192];
116 alignas(16) static float w97[1728];
117 alignas(16) static float w98[192];
118 alignas(16) static float w99[6144];
119 alignas(16) static float w100[32];
120 alignas(16) static float w101[6144];
121 alignas(16) static float w102[192];
122 alignas(16) static float w103[1728];
123 alignas(16) static float w104[192];
124 alignas(16) static float w105[12288];
125 alignas(16) static float w106[64];
126 alignas(16) static float w107[24576];
127 alignas(16) static float w108[384];
128 alignas(16) static float w109[3456];
129 alignas(16) static float w110[384];
130 alignas(16) static float w111[24576];
131 alignas(16) static float w112[64];
132 alignas(16) static float w113[24576];
133 alignas(16) static float w114[384];
134 alignas(16) static float w115[3456];
135 alignas(16) static float w116[384];
136 alignas(16) static float w117[24576];
137 alignas(16) static float w118[64];
138 alignas(16) static float w119[24576];
139 alignas(16) static float w120[384];
140 alignas(16) static float w121[3456];
141 alignas(16) static float w122[384];
142 alignas(16) static float w123[24576];
143 alignas(16) static float w124[64];
144 alignas(16) static float w125[24576];
145 alignas(16) static float w126[384];
146 alignas(16) static float w127[3456];
147 alignas(16) static float w128[384];
148 alignas(16) static float w129[36864];
149 alignas(16) static float w130[96];
150 alignas(16) static float w131[55296];
151 alignas(16) static float w132[576];
152 alignas(16) static float w133[5184];
153 alignas(16) static float w134[576];
154 alignas(16) static float w135[55296];
155 alignas(16) static float w136[96];
156 alignas(16) static float w137[55296];
157 alignas(16) static float w138[576];
158 alignas(16) static float w139[5184];
159 alignas(16) static float w140[576];
160 alignas(16) static float w141[55296];
161 alignas(16) static float w142[96];
162 alignas(16) static float w143[55296];
163 alignas(16) static float w144[576];
164 alignas(16) static float w145[5184];
165 alignas(16) static float w146[576];
166 alignas(16) static float w147[92160];
167 alignas(16) static float w148[160];
168 alignas(16) static float w149[153600];
169 alignas(16) static float w150[960];
170 alignas(16) static float w151[8640];
171 alignas(16) static float w152[960];
172 alignas(16) static float w153[153600];
173 alignas(16) static float w154[160];
174 alignas(16) static float w155[153600];
175 alignas(16) static float w156[960];
176 alignas(16) static float w157[8640];
177 alignas(16) static float w158[960];
178 alignas(16) static float w159[153600];
179 alignas(16) static float w160[160];
180 alignas(16) static float w161[153600];
181 alignas(16) static float w162[960];
182 alignas(16) static float w163[8640];
183 alignas(16) static float w164[960];
184 alignas(16) static float w165[307200];
185 alignas(16) static float w166[320];
186 alignas(16) static float w167[409600];
187 alignas(16) static float w168[1280];
188 alignas(16) static float w169[1281280];
189 alignas(16) static float w170[1001];
190
191 std::random_device random_device;
192 auto rng = std::mt19937(random_device());
193 auto f32rng = std::bind(std::uniform_real_distribution<float>(-1.0f, +1.0f), rng);
194 std::generate(v0, v0 + 150528, std::ref(f32rng));
195 std::generate(w65, w65 + 864, std::ref(f32rng));
196 std::generate(w66, w66 + 32, std::ref(f32rng));
197 std::generate(w67, w67 + 288, std::ref(f32rng));
198 std::generate(w68, w68 + 32, std::ref(f32rng));
199 std::generate(w69, w69 + 512, std::ref(f32rng));
200 std::generate(w70, w70 + 16, std::ref(f32rng));
201 std::generate(w71, w71 + 1536, std::ref(f32rng));
202 std::generate(w72, w72 + 96, std::ref(f32rng));
203 std::generate(w73, w73 + 864, std::ref(f32rng));
204 std::generate(w74, w74 + 96, std::ref(f32rng));
205 std::generate(w75, w75 + 2304, std::ref(f32rng));
206 std::generate(w76, w76 + 24, std::ref(f32rng));
207 std::generate(w77, w77 + 3456, std::ref(f32rng));
208 std::generate(w78, w78 + 144, std::ref(f32rng));
209 std::generate(w79, w79 + 1296, std::ref(f32rng));
210 std::generate(w80, w80 + 144, std::ref(f32rng));
211 std::generate(w81, w81 + 3456, std::ref(f32rng));
212 std::generate(w82, w82 + 24, std::ref(f32rng));
213 std::generate(w83, w83 + 3456, std::ref(f32rng));
214 std::generate(w84, w84 + 144, std::ref(f32rng));
215 std::generate(w85, w85 + 1296, std::ref(f32rng));
216 std::generate(w86, w86 + 144, std::ref(f32rng));
217 std::generate(w87, w87 + 4608, std::ref(f32rng));
218 std::generate(w88, w88 + 32, std::ref(f32rng));
219 std::generate(w89, w89 + 6144, std::ref(f32rng));
220 std::generate(w90, w90 + 192, std::ref(f32rng));
221 std::generate(w91, w91 + 1728, std::ref(f32rng));
222 std::generate(w92, w92 + 192, std::ref(f32rng));
223 std::generate(w93, w93 + 6144, std::ref(f32rng));
224 std::generate(w94, w94 + 32, std::ref(f32rng));
225 std::generate(w95, w95 + 6144, std::ref(f32rng));
226 std::generate(w96, w96 + 192, std::ref(f32rng));
227 std::generate(w97, w97 + 1728, std::ref(f32rng));
228 std::generate(w98, w98 + 192, std::ref(f32rng));
229 std::generate(w99, w99 + 6144, std::ref(f32rng));
230 std::generate(w100, w100 + 32, std::ref(f32rng));
231 std::generate(w101, w101 + 6144, std::ref(f32rng));
232 std::generate(w102, w102 + 192, std::ref(f32rng));
233 std::generate(w103, w103 + 1728, std::ref(f32rng));
234 std::generate(w104, w104 + 192, std::ref(f32rng));
235 std::generate(w105, w105 + 12288, std::ref(f32rng));
236 std::generate(w106, w106 + 64, std::ref(f32rng));
237 std::generate(w107, w107 + 24576, std::ref(f32rng));
238 std::generate(w108, w108 + 384, std::ref(f32rng));
239 std::generate(w109, w109 + 3456, std::ref(f32rng));
240 std::generate(w110, w110 + 384, std::ref(f32rng));
241 std::generate(w111, w111 + 24576, std::ref(f32rng));
242 std::generate(w112, w112 + 64, std::ref(f32rng));
243 std::generate(w113, w113 + 24576, std::ref(f32rng));
244 std::generate(w114, w114 + 384, std::ref(f32rng));
245 std::generate(w115, w115 + 3456, std::ref(f32rng));
246 std::generate(w116, w116 + 384, std::ref(f32rng));
247 std::generate(w117, w117 + 24576, std::ref(f32rng));
248 std::generate(w118, w118 + 64, std::ref(f32rng));
249 std::generate(w119, w119 + 24576, std::ref(f32rng));
250 std::generate(w120, w120 + 384, std::ref(f32rng));
251 std::generate(w121, w121 + 3456, std::ref(f32rng));
252 std::generate(w122, w122 + 384, std::ref(f32rng));
253 std::generate(w123, w123 + 24576, std::ref(f32rng));
254 std::generate(w124, w124 + 64, std::ref(f32rng));
255 std::generate(w125, w125 + 24576, std::ref(f32rng));
256 std::generate(w126, w126 + 384, std::ref(f32rng));
257 std::generate(w127, w127 + 3456, std::ref(f32rng));
258 std::generate(w128, w128 + 384, std::ref(f32rng));
259 std::generate(w129, w129 + 36864, std::ref(f32rng));
260 std::generate(w130, w130 + 96, std::ref(f32rng));
261 std::generate(w131, w131 + 55296, std::ref(f32rng));
262 std::generate(w132, w132 + 576, std::ref(f32rng));
263 std::generate(w133, w133 + 5184, std::ref(f32rng));
264 std::generate(w134, w134 + 576, std::ref(f32rng));
265 std::generate(w135, w135 + 55296, std::ref(f32rng));
266 std::generate(w136, w136 + 96, std::ref(f32rng));
267 std::generate(w137, w137 + 55296, std::ref(f32rng));
268 std::generate(w138, w138 + 576, std::ref(f32rng));
269 std::generate(w139, w139 + 5184, std::ref(f32rng));
270 std::generate(w140, w140 + 576, std::ref(f32rng));
271 std::generate(w141, w141 + 55296, std::ref(f32rng));
272 std::generate(w142, w142 + 96, std::ref(f32rng));
273 std::generate(w143, w143 + 55296, std::ref(f32rng));
274 std::generate(w144, w144 + 576, std::ref(f32rng));
275 std::generate(w145, w145 + 5184, std::ref(f32rng));
276 std::generate(w146, w146 + 576, std::ref(f32rng));
277 std::generate(w147, w147 + 92160, std::ref(f32rng));
278 std::generate(w148, w148 + 160, std::ref(f32rng));
279 std::generate(w149, w149 + 153600, std::ref(f32rng));
280 std::generate(w150, w150 + 960, std::ref(f32rng));
281 std::generate(w151, w151 + 8640, std::ref(f32rng));
282 std::generate(w152, w152 + 960, std::ref(f32rng));
283 std::generate(w153, w153 + 153600, std::ref(f32rng));
284 std::generate(w154, w154 + 160, std::ref(f32rng));
285 std::generate(w155, w155 + 153600, std::ref(f32rng));
286 std::generate(w156, w156 + 960, std::ref(f32rng));
287 std::generate(w157, w157 + 8640, std::ref(f32rng));
288 std::generate(w158, w158 + 960, std::ref(f32rng));
289 std::generate(w159, w159 + 153600, std::ref(f32rng));
290 std::generate(w160, w160 + 160, std::ref(f32rng));
291 std::generate(w161, w161 + 153600, std::ref(f32rng));
292 std::generate(w162, w162 + 960, std::ref(f32rng));
293 std::generate(w163, w163 + 8640, std::ref(f32rng));
294 std::generate(w164, w164 + 960, std::ref(f32rng));
295 std::generate(w165, w165 + 307200, std::ref(f32rng));
296 std::generate(w166, w166 + 320, std::ref(f32rng));
297 std::generate(w167, w167 + 409600, std::ref(f32rng));
298 std::generate(w168, w168 + 1280, std::ref(f32rng));
299 std::generate(w169, w169 + 1281280, std::ref(f32rng));
300 std::generate(w170, w170 + 1001, std::ref(f32rng));
301
302 ExecutionPlan operators;
303 xnn_status status;
304
305 xnn_operator_t op0 = nullptr;
306 status = xnn_create_convolution2d_nhwc_f32(
307 0 /* top padding */, 1 /* right padding */,
308 1 /* bottom padding */, 0 /* left padding */,
309 3 /* kernel height */, 3 /* kernel width */,
310 2 /* subsampling height */, 2 /* subsampling width */,
311 1 /* dilation_height */, 1 /* dilation_width */,
312 1 /* groups */,
313 3 /* input channels per group */,
314 32 /* output_channels_per_group */,
315 3 /* input pixel stride */,
316 32 /* output pixel stride */,
317 w65, w66,
318 0.0f /* output min */, 6.0f /* output max */,
319 0 /* flags */,
320 &op0);
321 if (status != xnn_status_success) {
322 std::cerr << "failed to create operation #0" << std::endl;
323 return ExecutionPlan();
324 }
325 operators.emplace_back(op0, xnn_delete_operator);
326
327 xnn_operator_t op1 = nullptr;
328 status = xnn_create_convolution2d_nhwc_f32(
329 1 /* top padding */, 1 /* right padding */,
330 1 /* bottom padding */, 1 /* left padding */,
331 3 /* kernel height */, 3 /* kernel width */,
332 1 /* subsampling height */, 1 /* subsampling width */,
333 1 /* dilation_height */, 1 /* dilation_width */,
334 32 /* groups */,
335 1 /* input channels per group */,
336 1 /* output_channels_per_group */,
337 32 /* input pixel stride */,
338 32 /* output pixel stride */,
339 w67, w68,
340 0.0f /* output min */, 6.0f /* output max */,
341 0 /* flags */,
342 &op1);
343 if (status != xnn_status_success) {
344 std::cerr << "failed to create operation #1" << std::endl;
345 return ExecutionPlan();
346 }
347 operators.emplace_back(op1, xnn_delete_operator);
348
349 xnn_operator_t op2 = nullptr;
350 status = xnn_create_convolution2d_nhwc_f32(
351 0 /* top padding */, 0 /* right padding */,
352 0 /* bottom padding */, 0 /* left padding */,
353 1 /* kernel height */, 1 /* kernel width */,
354 1 /* subsampling height */, 1 /* subsampling width */,
355 1 /* dilation_height */, 1 /* dilation_width */,
356 1 /* groups */,
357 32 /* input channels per group */,
358 16 /* output_channels_per_group */,
359 32 /* input pixel stride */,
360 16 /* output pixel stride */,
361 w69, w70,
362 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
363 0 /* flags */,
364 &op2);
365 if (status != xnn_status_success) {
366 std::cerr << "failed to create operation #2" << std::endl;
367 return ExecutionPlan();
368 }
369 operators.emplace_back(op2, xnn_delete_operator);
370
371 xnn_operator_t op3 = nullptr;
372 status = xnn_create_convolution2d_nhwc_f32(
373 0 /* top padding */, 0 /* right padding */,
374 0 /* bottom padding */, 0 /* left padding */,
375 1 /* kernel height */, 1 /* kernel width */,
376 1 /* subsampling height */, 1 /* subsampling width */,
377 1 /* dilation_height */, 1 /* dilation_width */,
378 1 /* groups */,
379 16 /* input channels per group */,
380 96 /* output_channels_per_group */,
381 16 /* input pixel stride */,
382 96 /* output pixel stride */,
383 w71, w72,
384 0.0f /* output min */, 6.0f /* output max */,
385 0 /* flags */,
386 &op3);
387 if (status != xnn_status_success) {
388 std::cerr << "failed to create operation #3" << std::endl;
389 return ExecutionPlan();
390 }
391 operators.emplace_back(op3, xnn_delete_operator);
392
393 xnn_operator_t op4 = nullptr;
394 status = xnn_create_convolution2d_nhwc_f32(
395 0 /* top padding */, 1 /* right padding */,
396 1 /* bottom padding */, 0 /* left padding */,
397 3 /* kernel height */, 3 /* kernel width */,
398 2 /* subsampling height */, 2 /* subsampling width */,
399 1 /* dilation_height */, 1 /* dilation_width */,
400 96 /* groups */,
401 1 /* input channels per group */,
402 1 /* output_channels_per_group */,
403 96 /* input pixel stride */,
404 96 /* output pixel stride */,
405 w73, w74,
406 0.0f /* output min */, 6.0f /* output max */,
407 0 /* flags */,
408 &op4);
409 if (status != xnn_status_success) {
410 std::cerr << "failed to create operation #4" << std::endl;
411 return ExecutionPlan();
412 }
413 operators.emplace_back(op4, xnn_delete_operator);
414
415 xnn_operator_t op5 = nullptr;
416 status = xnn_create_convolution2d_nhwc_f32(
417 0 /* top padding */, 0 /* right padding */,
418 0 /* bottom padding */, 0 /* left padding */,
419 1 /* kernel height */, 1 /* kernel width */,
420 1 /* subsampling height */, 1 /* subsampling width */,
421 1 /* dilation_height */, 1 /* dilation_width */,
422 1 /* groups */,
423 96 /* input channels per group */,
424 24 /* output_channels_per_group */,
425 96 /* input pixel stride */,
426 24 /* output pixel stride */,
427 w75, w76,
428 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
429 0 /* flags */,
430 &op5);
431 if (status != xnn_status_success) {
432 std::cerr << "failed to create operation #5" << std::endl;
433 return ExecutionPlan();
434 }
435 operators.emplace_back(op5, xnn_delete_operator);
436
437 xnn_operator_t op6 = nullptr;
438 status = xnn_create_convolution2d_nhwc_f32(
439 0 /* top padding */, 0 /* right padding */,
440 0 /* bottom padding */, 0 /* left padding */,
441 1 /* kernel height */, 1 /* kernel width */,
442 1 /* subsampling height */, 1 /* subsampling width */,
443 1 /* dilation_height */, 1 /* dilation_width */,
444 1 /* groups */,
445 24 /* input channels per group */,
446 144 /* output_channels_per_group */,
447 24 /* input pixel stride */,
448 144 /* output pixel stride */,
449 w77, w78,
450 0.0f /* output min */, 6.0f /* output max */,
451 0 /* flags */,
452 &op6);
453 if (status != xnn_status_success) {
454 std::cerr << "failed to create operation #6" << std::endl;
455 return ExecutionPlan();
456 }
457 operators.emplace_back(op6, xnn_delete_operator);
458
459 xnn_operator_t op7 = nullptr;
460 status = xnn_create_convolution2d_nhwc_f32(
461 1 /* top padding */, 1 /* right padding */,
462 1 /* bottom padding */, 1 /* left padding */,
463 3 /* kernel height */, 3 /* kernel width */,
464 1 /* subsampling height */, 1 /* subsampling width */,
465 1 /* dilation_height */, 1 /* dilation_width */,
466 144 /* groups */,
467 1 /* input channels per group */,
468 1 /* output_channels_per_group */,
469 144 /* input pixel stride */,
470 144 /* output pixel stride */,
471 w79, w80,
472 0.0f /* output min */, 6.0f /* output max */,
473 0 /* flags */,
474 &op7);
475 if (status != xnn_status_success) {
476 std::cerr << "failed to create operation #7" << std::endl;
477 return ExecutionPlan();
478 }
479 operators.emplace_back(op7, xnn_delete_operator);
480
481 xnn_operator_t op8 = nullptr;
482 status = xnn_create_convolution2d_nhwc_f32(
483 0 /* top padding */, 0 /* right padding */,
484 0 /* bottom padding */, 0 /* left padding */,
485 1 /* kernel height */, 1 /* kernel width */,
486 1 /* subsampling height */, 1 /* subsampling width */,
487 1 /* dilation_height */, 1 /* dilation_width */,
488 1 /* groups */,
489 144 /* input channels per group */,
490 24 /* output_channels_per_group */,
491 144 /* input pixel stride */,
492 24 /* output pixel stride */,
493 w81, w82,
494 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
495 0 /* flags */,
496 &op8);
497 if (status != xnn_status_success) {
498 std::cerr << "failed to create operation #8" << std::endl;
499 return ExecutionPlan();
500 }
501 operators.emplace_back(op8, xnn_delete_operator);
502
503 xnn_operator_t op9 = nullptr;
504 status = xnn_create_add_nc_f32(
505 24 /* channels */,
506 24 /* a stride */,
507 24 /* b stride */,
508 24 /* c stride */,
509 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
510 0 /* flags */,
511 &op9);
512 if (status != xnn_status_success) {
513 std::cerr << "failed to create operation #9" << std::endl;
514 return ExecutionPlan();
515 }
516 operators.emplace_back(op9, xnn_delete_operator);
517
518 xnn_operator_t op10 = nullptr;
519 status = xnn_create_convolution2d_nhwc_f32(
520 0 /* top padding */, 0 /* right padding */,
521 0 /* bottom padding */, 0 /* left padding */,
522 1 /* kernel height */, 1 /* kernel width */,
523 1 /* subsampling height */, 1 /* subsampling width */,
524 1 /* dilation_height */, 1 /* dilation_width */,
525 1 /* groups */,
526 24 /* input channels per group */,
527 144 /* output_channels_per_group */,
528 24 /* input pixel stride */,
529 144 /* output pixel stride */,
530 w83, w84,
531 0.0f /* output min */, 6.0f /* output max */,
532 0 /* flags */,
533 &op10);
534 if (status != xnn_status_success) {
535 std::cerr << "failed to create operation #10" << std::endl;
536 return ExecutionPlan();
537 }
538 operators.emplace_back(op10, xnn_delete_operator);
539
540 xnn_operator_t op11 = nullptr;
541 status = xnn_create_convolution2d_nhwc_f32(
542 0 /* top padding */, 1 /* right padding */,
543 1 /* bottom padding */, 0 /* left padding */,
544 3 /* kernel height */, 3 /* kernel width */,
545 2 /* subsampling height */, 2 /* subsampling width */,
546 1 /* dilation_height */, 1 /* dilation_width */,
547 144 /* groups */,
548 1 /* input channels per group */,
549 1 /* output_channels_per_group */,
550 144 /* input pixel stride */,
551 144 /* output pixel stride */,
552 w85, w86,
553 0.0f /* output min */, 6.0f /* output max */,
554 0 /* flags */,
555 &op11);
556 if (status != xnn_status_success) {
557 std::cerr << "failed to create operation #11" << std::endl;
558 return ExecutionPlan();
559 }
560 operators.emplace_back(op11, xnn_delete_operator);
561
562 xnn_operator_t op12 = nullptr;
563 status = xnn_create_convolution2d_nhwc_f32(
564 0 /* top padding */, 0 /* right padding */,
565 0 /* bottom padding */, 0 /* left padding */,
566 1 /* kernel height */, 1 /* kernel width */,
567 1 /* subsampling height */, 1 /* subsampling width */,
568 1 /* dilation_height */, 1 /* dilation_width */,
569 1 /* groups */,
570 144 /* input channels per group */,
571 32 /* output_channels_per_group */,
572 144 /* input pixel stride */,
573 32 /* output pixel stride */,
574 w87, w88,
575 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
576 0 /* flags */,
577 &op12);
578 if (status != xnn_status_success) {
579 std::cerr << "failed to create operation #12" << std::endl;
580 return ExecutionPlan();
581 }
582 operators.emplace_back(op12, xnn_delete_operator);
583
584 xnn_operator_t op13 = nullptr;
585 status = xnn_create_convolution2d_nhwc_f32(
586 0 /* top padding */, 0 /* right padding */,
587 0 /* bottom padding */, 0 /* left padding */,
588 1 /* kernel height */, 1 /* kernel width */,
589 1 /* subsampling height */, 1 /* subsampling width */,
590 1 /* dilation_height */, 1 /* dilation_width */,
591 1 /* groups */,
592 32 /* input channels per group */,
593 192 /* output_channels_per_group */,
594 32 /* input pixel stride */,
595 192 /* output pixel stride */,
596 w89, w90,
597 0.0f /* output min */, 6.0f /* output max */,
598 0 /* flags */,
599 &op13);
600 if (status != xnn_status_success) {
601 std::cerr << "failed to create operation #13" << std::endl;
602 return ExecutionPlan();
603 }
604 operators.emplace_back(op13, xnn_delete_operator);
605
606 xnn_operator_t op14 = nullptr;
607 status = xnn_create_convolution2d_nhwc_f32(
608 1 /* top padding */, 1 /* right padding */,
609 1 /* bottom padding */, 1 /* left padding */,
610 3 /* kernel height */, 3 /* kernel width */,
611 1 /* subsampling height */, 1 /* subsampling width */,
612 1 /* dilation_height */, 1 /* dilation_width */,
613 192 /* groups */,
614 1 /* input channels per group */,
615 1 /* output_channels_per_group */,
616 192 /* input pixel stride */,
617 192 /* output pixel stride */,
618 w91, w92,
619 0.0f /* output min */, 6.0f /* output max */,
620 0 /* flags */,
621 &op14);
622 if (status != xnn_status_success) {
623 std::cerr << "failed to create operation #14" << std::endl;
624 return ExecutionPlan();
625 }
626 operators.emplace_back(op14, xnn_delete_operator);
627
628 xnn_operator_t op15 = nullptr;
629 status = xnn_create_convolution2d_nhwc_f32(
630 0 /* top padding */, 0 /* right padding */,
631 0 /* bottom padding */, 0 /* left padding */,
632 1 /* kernel height */, 1 /* kernel width */,
633 1 /* subsampling height */, 1 /* subsampling width */,
634 1 /* dilation_height */, 1 /* dilation_width */,
635 1 /* groups */,
636 192 /* input channels per group */,
637 32 /* output_channels_per_group */,
638 192 /* input pixel stride */,
639 32 /* output pixel stride */,
640 w93, w94,
641 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
642 0 /* flags */,
643 &op15);
644 if (status != xnn_status_success) {
645 std::cerr << "failed to create operation #15" << std::endl;
646 return ExecutionPlan();
647 }
648 operators.emplace_back(op15, xnn_delete_operator);
649
650 xnn_operator_t op16 = nullptr;
651 status = xnn_create_add_nc_f32(
652 32 /* channels */,
653 32 /* a stride */,
654 32 /* b stride */,
655 32 /* c stride */,
656 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
657 0 /* flags */,
658 &op16);
659 if (status != xnn_status_success) {
660 std::cerr << "failed to create operation #16" << std::endl;
661 return ExecutionPlan();
662 }
663 operators.emplace_back(op16, xnn_delete_operator);
664
665 xnn_operator_t op17 = nullptr;
666 status = xnn_create_convolution2d_nhwc_f32(
667 0 /* top padding */, 0 /* right padding */,
668 0 /* bottom padding */, 0 /* left padding */,
669 1 /* kernel height */, 1 /* kernel width */,
670 1 /* subsampling height */, 1 /* subsampling width */,
671 1 /* dilation_height */, 1 /* dilation_width */,
672 1 /* groups */,
673 32 /* input channels per group */,
674 192 /* output_channels_per_group */,
675 32 /* input pixel stride */,
676 192 /* output pixel stride */,
677 w95, w96,
678 0.0f /* output min */, 6.0f /* output max */,
679 0 /* flags */,
680 &op17);
681 if (status != xnn_status_success) {
682 std::cerr << "failed to create operation #17" << std::endl;
683 return ExecutionPlan();
684 }
685 operators.emplace_back(op17, xnn_delete_operator);
686
687 xnn_operator_t op18 = nullptr;
688 status = xnn_create_convolution2d_nhwc_f32(
689 1 /* top padding */, 1 /* right padding */,
690 1 /* bottom padding */, 1 /* left padding */,
691 3 /* kernel height */, 3 /* kernel width */,
692 1 /* subsampling height */, 1 /* subsampling width */,
693 1 /* dilation_height */, 1 /* dilation_width */,
694 192 /* groups */,
695 1 /* input channels per group */,
696 1 /* output_channels_per_group */,
697 192 /* input pixel stride */,
698 192 /* output pixel stride */,
699 w97, w98,
700 0.0f /* output min */, 6.0f /* output max */,
701 0 /* flags */,
702 &op18);
703 if (status != xnn_status_success) {
704 std::cerr << "failed to create operation #18" << std::endl;
705 return ExecutionPlan();
706 }
707 operators.emplace_back(op18, xnn_delete_operator);
708
709 xnn_operator_t op19 = nullptr;
710 status = xnn_create_convolution2d_nhwc_f32(
711 0 /* top padding */, 0 /* right padding */,
712 0 /* bottom padding */, 0 /* left padding */,
713 1 /* kernel height */, 1 /* kernel width */,
714 1 /* subsampling height */, 1 /* subsampling width */,
715 1 /* dilation_height */, 1 /* dilation_width */,
716 1 /* groups */,
717 192 /* input channels per group */,
718 32 /* output_channels_per_group */,
719 192 /* input pixel stride */,
720 32 /* output pixel stride */,
721 w99, w100,
722 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
723 0 /* flags */,
724 &op19);
725 if (status != xnn_status_success) {
726 std::cerr << "failed to create operation #19" << std::endl;
727 return ExecutionPlan();
728 }
729 operators.emplace_back(op19, xnn_delete_operator);
730
731 xnn_operator_t op20 = nullptr;
732 status = xnn_create_add_nc_f32(
733 32 /* channels */,
734 32 /* a stride */,
735 32 /* b stride */,
736 32 /* c stride */,
737 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
738 0 /* flags */,
739 &op20);
740 if (status != xnn_status_success) {
741 std::cerr << "failed to create operation #20" << std::endl;
742 return ExecutionPlan();
743 }
744 operators.emplace_back(op20, xnn_delete_operator);
745
746 xnn_operator_t op21 = nullptr;
747 status = xnn_create_convolution2d_nhwc_f32(
748 0 /* top padding */, 0 /* right padding */,
749 0 /* bottom padding */, 0 /* left padding */,
750 1 /* kernel height */, 1 /* kernel width */,
751 1 /* subsampling height */, 1 /* subsampling width */,
752 1 /* dilation_height */, 1 /* dilation_width */,
753 1 /* groups */,
754 32 /* input channels per group */,
755 192 /* output_channels_per_group */,
756 32 /* input pixel stride */,
757 192 /* output pixel stride */,
758 w101, w102,
759 0.0f /* output min */, 6.0f /* output max */,
760 0 /* flags */,
761 &op21);
762 if (status != xnn_status_success) {
763 std::cerr << "failed to create operation #21" << std::endl;
764 return ExecutionPlan();
765 }
766 operators.emplace_back(op21, xnn_delete_operator);
767
768 xnn_operator_t op22 = nullptr;
769 status = xnn_create_convolution2d_nhwc_f32(
770 0 /* top padding */, 1 /* right padding */,
771 1 /* bottom padding */, 0 /* left padding */,
772 3 /* kernel height */, 3 /* kernel width */,
773 2 /* subsampling height */, 2 /* subsampling width */,
774 1 /* dilation_height */, 1 /* dilation_width */,
775 192 /* groups */,
776 1 /* input channels per group */,
777 1 /* output_channels_per_group */,
778 192 /* input pixel stride */,
779 192 /* output pixel stride */,
780 w103, w104,
781 0.0f /* output min */, 6.0f /* output max */,
782 0 /* flags */,
783 &op22);
784 if (status != xnn_status_success) {
785 std::cerr << "failed to create operation #22" << std::endl;
786 return ExecutionPlan();
787 }
788 operators.emplace_back(op22, xnn_delete_operator);
789
790 xnn_operator_t op23 = nullptr;
791 status = xnn_create_convolution2d_nhwc_f32(
792 0 /* top padding */, 0 /* right padding */,
793 0 /* bottom padding */, 0 /* left padding */,
794 1 /* kernel height */, 1 /* kernel width */,
795 1 /* subsampling height */, 1 /* subsampling width */,
796 1 /* dilation_height */, 1 /* dilation_width */,
797 1 /* groups */,
798 192 /* input channels per group */,
799 64 /* output_channels_per_group */,
800 192 /* input pixel stride */,
801 64 /* output pixel stride */,
802 w105, w106,
803 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
804 0 /* flags */,
805 &op23);
806 if (status != xnn_status_success) {
807 std::cerr << "failed to create operation #23" << std::endl;
808 return ExecutionPlan();
809 }
810 operators.emplace_back(op23, xnn_delete_operator);
811
812 xnn_operator_t op24 = nullptr;
813 status = xnn_create_convolution2d_nhwc_f32(
814 0 /* top padding */, 0 /* right padding */,
815 0 /* bottom padding */, 0 /* left padding */,
816 1 /* kernel height */, 1 /* kernel width */,
817 1 /* subsampling height */, 1 /* subsampling width */,
818 1 /* dilation_height */, 1 /* dilation_width */,
819 1 /* groups */,
820 64 /* input channels per group */,
821 384 /* output_channels_per_group */,
822 64 /* input pixel stride */,
823 384 /* output pixel stride */,
824 w107, w108,
825 0.0f /* output min */, 6.0f /* output max */,
826 0 /* flags */,
827 &op24);
828 if (status != xnn_status_success) {
829 std::cerr << "failed to create operation #24" << std::endl;
830 return ExecutionPlan();
831 }
832 operators.emplace_back(op24, xnn_delete_operator);
833
834 xnn_operator_t op25 = nullptr;
835 status = xnn_create_convolution2d_nhwc_f32(
836 1 /* top padding */, 1 /* right padding */,
837 1 /* bottom padding */, 1 /* left padding */,
838 3 /* kernel height */, 3 /* kernel width */,
839 1 /* subsampling height */, 1 /* subsampling width */,
840 1 /* dilation_height */, 1 /* dilation_width */,
841 384 /* groups */,
842 1 /* input channels per group */,
843 1 /* output_channels_per_group */,
844 384 /* input pixel stride */,
845 384 /* output pixel stride */,
846 w109, w110,
847 0.0f /* output min */, 6.0f /* output max */,
848 0 /* flags */,
849 &op25);
850 if (status != xnn_status_success) {
851 std::cerr << "failed to create operation #25" << std::endl;
852 return ExecutionPlan();
853 }
854 operators.emplace_back(op25, xnn_delete_operator);
855
856 xnn_operator_t op26 = nullptr;
857 status = xnn_create_convolution2d_nhwc_f32(
858 0 /* top padding */, 0 /* right padding */,
859 0 /* bottom padding */, 0 /* left padding */,
860 1 /* kernel height */, 1 /* kernel width */,
861 1 /* subsampling height */, 1 /* subsampling width */,
862 1 /* dilation_height */, 1 /* dilation_width */,
863 1 /* groups */,
864 384 /* input channels per group */,
865 64 /* output_channels_per_group */,
866 384 /* input pixel stride */,
867 64 /* output pixel stride */,
868 w111, w112,
869 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
870 0 /* flags */,
871 &op26);
872 if (status != xnn_status_success) {
873 std::cerr << "failed to create operation #26" << std::endl;
874 return ExecutionPlan();
875 }
876 operators.emplace_back(op26, xnn_delete_operator);
877
878 xnn_operator_t op27 = nullptr;
879 status = xnn_create_add_nc_f32(
880 64 /* channels */,
881 64 /* a stride */,
882 64 /* b stride */,
883 64 /* c stride */,
884 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
885 0 /* flags */,
886 &op27);
887 if (status != xnn_status_success) {
888 std::cerr << "failed to create operation #27" << std::endl;
889 return ExecutionPlan();
890 }
891 operators.emplace_back(op27, xnn_delete_operator);
892
893 xnn_operator_t op28 = nullptr;
894 status = xnn_create_convolution2d_nhwc_f32(
895 0 /* top padding */, 0 /* right padding */,
896 0 /* bottom padding */, 0 /* left padding */,
897 1 /* kernel height */, 1 /* kernel width */,
898 1 /* subsampling height */, 1 /* subsampling width */,
899 1 /* dilation_height */, 1 /* dilation_width */,
900 1 /* groups */,
901 64 /* input channels per group */,
902 384 /* output_channels_per_group */,
903 64 /* input pixel stride */,
904 384 /* output pixel stride */,
905 w113, w114,
906 0.0f /* output min */, 6.0f /* output max */,
907 0 /* flags */,
908 &op28);
909 if (status != xnn_status_success) {
910 std::cerr << "failed to create operation #28" << std::endl;
911 return ExecutionPlan();
912 }
913 operators.emplace_back(op28, xnn_delete_operator);
914
915 xnn_operator_t op29 = nullptr;
916 status = xnn_create_convolution2d_nhwc_f32(
917 1 /* top padding */, 1 /* right padding */,
918 1 /* bottom padding */, 1 /* left padding */,
919 3 /* kernel height */, 3 /* kernel width */,
920 1 /* subsampling height */, 1 /* subsampling width */,
921 1 /* dilation_height */, 1 /* dilation_width */,
922 384 /* groups */,
923 1 /* input channels per group */,
924 1 /* output_channels_per_group */,
925 384 /* input pixel stride */,
926 384 /* output pixel stride */,
927 w115, w116,
928 0.0f /* output min */, 6.0f /* output max */,
929 0 /* flags */,
930 &op29);
931 if (status != xnn_status_success) {
932 std::cerr << "failed to create operation #29" << std::endl;
933 return ExecutionPlan();
934 }
935 operators.emplace_back(op29, xnn_delete_operator);
936
937 xnn_operator_t op30 = nullptr;
938 status = xnn_create_convolution2d_nhwc_f32(
939 0 /* top padding */, 0 /* right padding */,
940 0 /* bottom padding */, 0 /* left padding */,
941 1 /* kernel height */, 1 /* kernel width */,
942 1 /* subsampling height */, 1 /* subsampling width */,
943 1 /* dilation_height */, 1 /* dilation_width */,
944 1 /* groups */,
945 384 /* input channels per group */,
946 64 /* output_channels_per_group */,
947 384 /* input pixel stride */,
948 64 /* output pixel stride */,
949 w117, w118,
950 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
951 0 /* flags */,
952 &op30);
953 if (status != xnn_status_success) {
954 std::cerr << "failed to create operation #30" << std::endl;
955 return ExecutionPlan();
956 }
957 operators.emplace_back(op30, xnn_delete_operator);
958
959 xnn_operator_t op31 = nullptr;
960 status = xnn_create_add_nc_f32(
961 64 /* channels */,
962 64 /* a stride */,
963 64 /* b stride */,
964 64 /* c stride */,
965 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
966 0 /* flags */,
967 &op31);
968 if (status != xnn_status_success) {
969 std::cerr << "failed to create operation #31" << std::endl;
970 return ExecutionPlan();
971 }
972 operators.emplace_back(op31, xnn_delete_operator);
973
974 xnn_operator_t op32 = nullptr;
975 status = xnn_create_convolution2d_nhwc_f32(
976 0 /* top padding */, 0 /* right padding */,
977 0 /* bottom padding */, 0 /* left padding */,
978 1 /* kernel height */, 1 /* kernel width */,
979 1 /* subsampling height */, 1 /* subsampling width */,
980 1 /* dilation_height */, 1 /* dilation_width */,
981 1 /* groups */,
982 64 /* input channels per group */,
983 384 /* output_channels_per_group */,
984 64 /* input pixel stride */,
985 384 /* output pixel stride */,
986 w119, w120,
987 0.0f /* output min */, 6.0f /* output max */,
988 0 /* flags */,
989 &op32);
990 if (status != xnn_status_success) {
991 std::cerr << "failed to create operation #32" << std::endl;
992 return ExecutionPlan();
993 }
994 operators.emplace_back(op32, xnn_delete_operator);
995
996 xnn_operator_t op33 = nullptr;
997 status = xnn_create_convolution2d_nhwc_f32(
998 1 /* top padding */, 1 /* right padding */,
999 1 /* bottom padding */, 1 /* left padding */,
1000 3 /* kernel height */, 3 /* kernel width */,
1001 1 /* subsampling height */, 1 /* subsampling width */,
1002 1 /* dilation_height */, 1 /* dilation_width */,
1003 384 /* groups */,
1004 1 /* input channels per group */,
1005 1 /* output_channels_per_group */,
1006 384 /* input pixel stride */,
1007 384 /* output pixel stride */,
1008 w121, w122,
1009 0.0f /* output min */, 6.0f /* output max */,
1010 0 /* flags */,
1011 &op33);
1012 if (status != xnn_status_success) {
1013 std::cerr << "failed to create operation #33" << std::endl;
1014 return ExecutionPlan();
1015 }
1016 operators.emplace_back(op33, xnn_delete_operator);
1017
1018 xnn_operator_t op34 = nullptr;
1019 status = xnn_create_convolution2d_nhwc_f32(
1020 0 /* top padding */, 0 /* right padding */,
1021 0 /* bottom padding */, 0 /* left padding */,
1022 1 /* kernel height */, 1 /* kernel width */,
1023 1 /* subsampling height */, 1 /* subsampling width */,
1024 1 /* dilation_height */, 1 /* dilation_width */,
1025 1 /* groups */,
1026 384 /* input channels per group */,
1027 64 /* output_channels_per_group */,
1028 384 /* input pixel stride */,
1029 64 /* output pixel stride */,
1030 w123, w124,
1031 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1032 0 /* flags */,
1033 &op34);
1034 if (status != xnn_status_success) {
1035 std::cerr << "failed to create operation #34" << std::endl;
1036 return ExecutionPlan();
1037 }
1038 operators.emplace_back(op34, xnn_delete_operator);
1039
1040 xnn_operator_t op35 = nullptr;
1041 status = xnn_create_add_nc_f32(
1042 64 /* channels */,
1043 64 /* a stride */,
1044 64 /* b stride */,
1045 64 /* c stride */,
1046 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1047 0 /* flags */,
1048 &op35);
1049 if (status != xnn_status_success) {
1050 std::cerr << "failed to create operation #35" << std::endl;
1051 return ExecutionPlan();
1052 }
1053 operators.emplace_back(op35, xnn_delete_operator);
1054
1055 xnn_operator_t op36 = nullptr;
1056 status = xnn_create_convolution2d_nhwc_f32(
1057 0 /* top padding */, 0 /* right padding */,
1058 0 /* bottom padding */, 0 /* left padding */,
1059 1 /* kernel height */, 1 /* kernel width */,
1060 1 /* subsampling height */, 1 /* subsampling width */,
1061 1 /* dilation_height */, 1 /* dilation_width */,
1062 1 /* groups */,
1063 64 /* input channels per group */,
1064 384 /* output_channels_per_group */,
1065 64 /* input pixel stride */,
1066 384 /* output pixel stride */,
1067 w125, w126,
1068 0.0f /* output min */, 6.0f /* output max */,
1069 0 /* flags */,
1070 &op36);
1071 if (status != xnn_status_success) {
1072 std::cerr << "failed to create operation #36" << std::endl;
1073 return ExecutionPlan();
1074 }
1075 operators.emplace_back(op36, xnn_delete_operator);
1076
1077 xnn_operator_t op37 = nullptr;
1078 status = xnn_create_convolution2d_nhwc_f32(
1079 1 /* top padding */, 1 /* right padding */,
1080 1 /* bottom padding */, 1 /* left padding */,
1081 3 /* kernel height */, 3 /* kernel width */,
1082 1 /* subsampling height */, 1 /* subsampling width */,
1083 1 /* dilation_height */, 1 /* dilation_width */,
1084 384 /* groups */,
1085 1 /* input channels per group */,
1086 1 /* output_channels_per_group */,
1087 384 /* input pixel stride */,
1088 384 /* output pixel stride */,
1089 w127, w128,
1090 0.0f /* output min */, 6.0f /* output max */,
1091 0 /* flags */,
1092 &op37);
1093 if (status != xnn_status_success) {
1094 std::cerr << "failed to create operation #37" << std::endl;
1095 return ExecutionPlan();
1096 }
1097 operators.emplace_back(op37, xnn_delete_operator);
1098
1099 xnn_operator_t op38 = nullptr;
1100 status = xnn_create_convolution2d_nhwc_f32(
1101 0 /* top padding */, 0 /* right padding */,
1102 0 /* bottom padding */, 0 /* left padding */,
1103 1 /* kernel height */, 1 /* kernel width */,
1104 1 /* subsampling height */, 1 /* subsampling width */,
1105 1 /* dilation_height */, 1 /* dilation_width */,
1106 1 /* groups */,
1107 384 /* input channels per group */,
1108 96 /* output_channels_per_group */,
1109 384 /* input pixel stride */,
1110 96 /* output pixel stride */,
1111 w129, w130,
1112 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1113 0 /* flags */,
1114 &op38);
1115 if (status != xnn_status_success) {
1116 std::cerr << "failed to create operation #38" << std::endl;
1117 return ExecutionPlan();
1118 }
1119 operators.emplace_back(op38, xnn_delete_operator);
1120
1121 xnn_operator_t op39 = nullptr;
1122 status = xnn_create_convolution2d_nhwc_f32(
1123 0 /* top padding */, 0 /* right padding */,
1124 0 /* bottom padding */, 0 /* left padding */,
1125 1 /* kernel height */, 1 /* kernel width */,
1126 1 /* subsampling height */, 1 /* subsampling width */,
1127 1 /* dilation_height */, 1 /* dilation_width */,
1128 1 /* groups */,
1129 96 /* input channels per group */,
1130 576 /* output_channels_per_group */,
1131 96 /* input pixel stride */,
1132 576 /* output pixel stride */,
1133 w131, w132,
1134 0.0f /* output min */, 6.0f /* output max */,
1135 0 /* flags */,
1136 &op39);
1137 if (status != xnn_status_success) {
1138 std::cerr << "failed to create operation #39" << std::endl;
1139 return ExecutionPlan();
1140 }
1141 operators.emplace_back(op39, xnn_delete_operator);
1142
1143 xnn_operator_t op40 = nullptr;
1144 status = xnn_create_convolution2d_nhwc_f32(
1145 1 /* top padding */, 1 /* right padding */,
1146 1 /* bottom padding */, 1 /* left padding */,
1147 3 /* kernel height */, 3 /* kernel width */,
1148 1 /* subsampling height */, 1 /* subsampling width */,
1149 1 /* dilation_height */, 1 /* dilation_width */,
1150 576 /* groups */,
1151 1 /* input channels per group */,
1152 1 /* output_channels_per_group */,
1153 576 /* input pixel stride */,
1154 576 /* output pixel stride */,
1155 w133, w134,
1156 0.0f /* output min */, 6.0f /* output max */,
1157 0 /* flags */,
1158 &op40);
1159 if (status != xnn_status_success) {
1160 std::cerr << "failed to create operation #40" << std::endl;
1161 return ExecutionPlan();
1162 }
1163 operators.emplace_back(op40, xnn_delete_operator);
1164
1165 xnn_operator_t op41 = nullptr;
1166 status = xnn_create_convolution2d_nhwc_f32(
1167 0 /* top padding */, 0 /* right padding */,
1168 0 /* bottom padding */, 0 /* left padding */,
1169 1 /* kernel height */, 1 /* kernel width */,
1170 1 /* subsampling height */, 1 /* subsampling width */,
1171 1 /* dilation_height */, 1 /* dilation_width */,
1172 1 /* groups */,
1173 576 /* input channels per group */,
1174 96 /* output_channels_per_group */,
1175 576 /* input pixel stride */,
1176 96 /* output pixel stride */,
1177 w135, w136,
1178 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1179 0 /* flags */,
1180 &op41);
1181 if (status != xnn_status_success) {
1182 std::cerr << "failed to create operation #41" << std::endl;
1183 return ExecutionPlan();
1184 }
1185 operators.emplace_back(op41, xnn_delete_operator);
1186
1187 xnn_operator_t op42 = nullptr;
1188 status = xnn_create_add_nc_f32(
1189 96 /* channels */,
1190 96 /* a stride */,
1191 96 /* b stride */,
1192 96 /* c stride */,
1193 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1194 0 /* flags */,
1195 &op42);
1196 if (status != xnn_status_success) {
1197 std::cerr << "failed to create operation #42" << std::endl;
1198 return ExecutionPlan();
1199 }
1200 operators.emplace_back(op42, xnn_delete_operator);
1201
1202 xnn_operator_t op43 = nullptr;
1203 status = xnn_create_convolution2d_nhwc_f32(
1204 0 /* top padding */, 0 /* right padding */,
1205 0 /* bottom padding */, 0 /* left padding */,
1206 1 /* kernel height */, 1 /* kernel width */,
1207 1 /* subsampling height */, 1 /* subsampling width */,
1208 1 /* dilation_height */, 1 /* dilation_width */,
1209 1 /* groups */,
1210 96 /* input channels per group */,
1211 576 /* output_channels_per_group */,
1212 96 /* input pixel stride */,
1213 576 /* output pixel stride */,
1214 w137, w138,
1215 0.0f /* output min */, 6.0f /* output max */,
1216 0 /* flags */,
1217 &op43);
1218 if (status != xnn_status_success) {
1219 std::cerr << "failed to create operation #43" << std::endl;
1220 return ExecutionPlan();
1221 }
1222 operators.emplace_back(op43, xnn_delete_operator);
1223
1224 xnn_operator_t op44 = nullptr;
1225 status = xnn_create_convolution2d_nhwc_f32(
1226 1 /* top padding */, 1 /* right padding */,
1227 1 /* bottom padding */, 1 /* left padding */,
1228 3 /* kernel height */, 3 /* kernel width */,
1229 1 /* subsampling height */, 1 /* subsampling width */,
1230 1 /* dilation_height */, 1 /* dilation_width */,
1231 576 /* groups */,
1232 1 /* input channels per group */,
1233 1 /* output_channels_per_group */,
1234 576 /* input pixel stride */,
1235 576 /* output pixel stride */,
1236 w139, w140,
1237 0.0f /* output min */, 6.0f /* output max */,
1238 0 /* flags */,
1239 &op44);
1240 if (status != xnn_status_success) {
1241 std::cerr << "failed to create operation #44" << std::endl;
1242 return ExecutionPlan();
1243 }
1244 operators.emplace_back(op44, xnn_delete_operator);
1245
1246 xnn_operator_t op45 = nullptr;
1247 status = xnn_create_convolution2d_nhwc_f32(
1248 0 /* top padding */, 0 /* right padding */,
1249 0 /* bottom padding */, 0 /* left padding */,
1250 1 /* kernel height */, 1 /* kernel width */,
1251 1 /* subsampling height */, 1 /* subsampling width */,
1252 1 /* dilation_height */, 1 /* dilation_width */,
1253 1 /* groups */,
1254 576 /* input channels per group */,
1255 96 /* output_channels_per_group */,
1256 576 /* input pixel stride */,
1257 96 /* output pixel stride */,
1258 w141, w142,
1259 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1260 0 /* flags */,
1261 &op45);
1262 if (status != xnn_status_success) {
1263 std::cerr << "failed to create operation #45" << std::endl;
1264 return ExecutionPlan();
1265 }
1266 operators.emplace_back(op45, xnn_delete_operator);
1267
1268 xnn_operator_t op46 = nullptr;
1269 status = xnn_create_add_nc_f32(
1270 96 /* channels */,
1271 96 /* a stride */,
1272 96 /* b stride */,
1273 96 /* c stride */,
1274 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1275 0 /* flags */,
1276 &op46);
1277 if (status != xnn_status_success) {
1278 std::cerr << "failed to create operation #46" << std::endl;
1279 return ExecutionPlan();
1280 }
1281 operators.emplace_back(op46, xnn_delete_operator);
1282
1283 xnn_operator_t op47 = nullptr;
1284 status = xnn_create_convolution2d_nhwc_f32(
1285 0 /* top padding */, 0 /* right padding */,
1286 0 /* bottom padding */, 0 /* left padding */,
1287 1 /* kernel height */, 1 /* kernel width */,
1288 1 /* subsampling height */, 1 /* subsampling width */,
1289 1 /* dilation_height */, 1 /* dilation_width */,
1290 1 /* groups */,
1291 96 /* input channels per group */,
1292 576 /* output_channels_per_group */,
1293 96 /* input pixel stride */,
1294 576 /* output pixel stride */,
1295 w143, w144,
1296 0.0f /* output min */, 6.0f /* output max */,
1297 0 /* flags */,
1298 &op47);
1299 if (status != xnn_status_success) {
1300 std::cerr << "failed to create operation #47" << std::endl;
1301 return ExecutionPlan();
1302 }
1303 operators.emplace_back(op47, xnn_delete_operator);
1304
1305 xnn_operator_t op48 = nullptr;
1306 status = xnn_create_convolution2d_nhwc_f32(
1307 0 /* top padding */, 1 /* right padding */,
1308 1 /* bottom padding */, 0 /* left padding */,
1309 3 /* kernel height */, 3 /* kernel width */,
1310 2 /* subsampling height */, 2 /* subsampling width */,
1311 1 /* dilation_height */, 1 /* dilation_width */,
1312 576 /* groups */,
1313 1 /* input channels per group */,
1314 1 /* output_channels_per_group */,
1315 576 /* input pixel stride */,
1316 576 /* output pixel stride */,
1317 w145, w146,
1318 0.0f /* output min */, 6.0f /* output max */,
1319 0 /* flags */,
1320 &op48);
1321 if (status != xnn_status_success) {
1322 std::cerr << "failed to create operation #48" << std::endl;
1323 return ExecutionPlan();
1324 }
1325 operators.emplace_back(op48, xnn_delete_operator);
1326
1327 xnn_operator_t op49 = nullptr;
1328 status = xnn_create_convolution2d_nhwc_f32(
1329 0 /* top padding */, 0 /* right padding */,
1330 0 /* bottom padding */, 0 /* left padding */,
1331 1 /* kernel height */, 1 /* kernel width */,
1332 1 /* subsampling height */, 1 /* subsampling width */,
1333 1 /* dilation_height */, 1 /* dilation_width */,
1334 1 /* groups */,
1335 576 /* input channels per group */,
1336 160 /* output_channels_per_group */,
1337 576 /* input pixel stride */,
1338 160 /* output pixel stride */,
1339 w147, w148,
1340 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1341 0 /* flags */,
1342 &op49);
1343 if (status != xnn_status_success) {
1344 std::cerr << "failed to create operation #49" << std::endl;
1345 return ExecutionPlan();
1346 }
1347 operators.emplace_back(op49, xnn_delete_operator);
1348
1349 xnn_operator_t op50 = nullptr;
1350 status = xnn_create_convolution2d_nhwc_f32(
1351 0 /* top padding */, 0 /* right padding */,
1352 0 /* bottom padding */, 0 /* left padding */,
1353 1 /* kernel height */, 1 /* kernel width */,
1354 1 /* subsampling height */, 1 /* subsampling width */,
1355 1 /* dilation_height */, 1 /* dilation_width */,
1356 1 /* groups */,
1357 160 /* input channels per group */,
1358 960 /* output_channels_per_group */,
1359 160 /* input pixel stride */,
1360 960 /* output pixel stride */,
1361 w149, w150,
1362 0.0f /* output min */, 6.0f /* output max */,
1363 0 /* flags */,
1364 &op50);
1365 if (status != xnn_status_success) {
1366 std::cerr << "failed to create operation #50" << std::endl;
1367 return ExecutionPlan();
1368 }
1369 operators.emplace_back(op50, xnn_delete_operator);
1370
1371 xnn_operator_t op51 = nullptr;
1372 status = xnn_create_convolution2d_nhwc_f32(
1373 1 /* top padding */, 1 /* right padding */,
1374 1 /* bottom padding */, 1 /* left padding */,
1375 3 /* kernel height */, 3 /* kernel width */,
1376 1 /* subsampling height */, 1 /* subsampling width */,
1377 1 /* dilation_height */, 1 /* dilation_width */,
1378 960 /* groups */,
1379 1 /* input channels per group */,
1380 1 /* output_channels_per_group */,
1381 960 /* input pixel stride */,
1382 960 /* output pixel stride */,
1383 w151, w152,
1384 0.0f /* output min */, 6.0f /* output max */,
1385 0 /* flags */,
1386 &op51);
1387 if (status != xnn_status_success) {
1388 std::cerr << "failed to create operation #51" << std::endl;
1389 return ExecutionPlan();
1390 }
1391 operators.emplace_back(op51, xnn_delete_operator);
1392
1393 xnn_operator_t op52 = nullptr;
1394 status = xnn_create_convolution2d_nhwc_f32(
1395 0 /* top padding */, 0 /* right padding */,
1396 0 /* bottom padding */, 0 /* left padding */,
1397 1 /* kernel height */, 1 /* kernel width */,
1398 1 /* subsampling height */, 1 /* subsampling width */,
1399 1 /* dilation_height */, 1 /* dilation_width */,
1400 1 /* groups */,
1401 960 /* input channels per group */,
1402 160 /* output_channels_per_group */,
1403 960 /* input pixel stride */,
1404 160 /* output pixel stride */,
1405 w153, w154,
1406 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1407 0 /* flags */,
1408 &op52);
1409 if (status != xnn_status_success) {
1410 std::cerr << "failed to create operation #52" << std::endl;
1411 return ExecutionPlan();
1412 }
1413 operators.emplace_back(op52, xnn_delete_operator);
1414
1415 xnn_operator_t op53 = nullptr;
1416 status = xnn_create_add_nc_f32(
1417 160 /* channels */,
1418 160 /* a stride */,
1419 160 /* b stride */,
1420 160 /* c stride */,
1421 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1422 0 /* flags */,
1423 &op53);
1424 if (status != xnn_status_success) {
1425 std::cerr << "failed to create operation #53" << std::endl;
1426 return ExecutionPlan();
1427 }
1428 operators.emplace_back(op53, xnn_delete_operator);
1429
1430 xnn_operator_t op54 = nullptr;
1431 status = xnn_create_convolution2d_nhwc_f32(
1432 0 /* top padding */, 0 /* right padding */,
1433 0 /* bottom padding */, 0 /* left padding */,
1434 1 /* kernel height */, 1 /* kernel width */,
1435 1 /* subsampling height */, 1 /* subsampling width */,
1436 1 /* dilation_height */, 1 /* dilation_width */,
1437 1 /* groups */,
1438 160 /* input channels per group */,
1439 960 /* output_channels_per_group */,
1440 160 /* input pixel stride */,
1441 960 /* output pixel stride */,
1442 w155, w156,
1443 0.0f /* output min */, 6.0f /* output max */,
1444 0 /* flags */,
1445 &op54);
1446 if (status != xnn_status_success) {
1447 std::cerr << "failed to create operation #54" << std::endl;
1448 return ExecutionPlan();
1449 }
1450 operators.emplace_back(op54, xnn_delete_operator);
1451
1452 xnn_operator_t op55 = nullptr;
1453 status = xnn_create_convolution2d_nhwc_f32(
1454 1 /* top padding */, 1 /* right padding */,
1455 1 /* bottom padding */, 1 /* left padding */,
1456 3 /* kernel height */, 3 /* kernel width */,
1457 1 /* subsampling height */, 1 /* subsampling width */,
1458 1 /* dilation_height */, 1 /* dilation_width */,
1459 960 /* groups */,
1460 1 /* input channels per group */,
1461 1 /* output_channels_per_group */,
1462 960 /* input pixel stride */,
1463 960 /* output pixel stride */,
1464 w157, w158,
1465 0.0f /* output min */, 6.0f /* output max */,
1466 0 /* flags */,
1467 &op55);
1468 if (status != xnn_status_success) {
1469 std::cerr << "failed to create operation #55" << std::endl;
1470 return ExecutionPlan();
1471 }
1472 operators.emplace_back(op55, xnn_delete_operator);
1473
1474 xnn_operator_t op56 = nullptr;
1475 status = xnn_create_convolution2d_nhwc_f32(
1476 0 /* top padding */, 0 /* right padding */,
1477 0 /* bottom padding */, 0 /* left padding */,
1478 1 /* kernel height */, 1 /* kernel width */,
1479 1 /* subsampling height */, 1 /* subsampling width */,
1480 1 /* dilation_height */, 1 /* dilation_width */,
1481 1 /* groups */,
1482 960 /* input channels per group */,
1483 160 /* output_channels_per_group */,
1484 960 /* input pixel stride */,
1485 160 /* output pixel stride */,
1486 w159, w160,
1487 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1488 0 /* flags */,
1489 &op56);
1490 if (status != xnn_status_success) {
1491 std::cerr << "failed to create operation #56" << std::endl;
1492 return ExecutionPlan();
1493 }
1494 operators.emplace_back(op56, xnn_delete_operator);
1495
1496 xnn_operator_t op57 = nullptr;
1497 status = xnn_create_add_nc_f32(
1498 160 /* channels */,
1499 160 /* a stride */,
1500 160 /* b stride */,
1501 160 /* c stride */,
1502 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1503 0 /* flags */,
1504 &op57);
1505 if (status != xnn_status_success) {
1506 std::cerr << "failed to create operation #57" << std::endl;
1507 return ExecutionPlan();
1508 }
1509 operators.emplace_back(op57, xnn_delete_operator);
1510
1511 xnn_operator_t op58 = nullptr;
1512 status = xnn_create_convolution2d_nhwc_f32(
1513 0 /* top padding */, 0 /* right padding */,
1514 0 /* bottom padding */, 0 /* left padding */,
1515 1 /* kernel height */, 1 /* kernel width */,
1516 1 /* subsampling height */, 1 /* subsampling width */,
1517 1 /* dilation_height */, 1 /* dilation_width */,
1518 1 /* groups */,
1519 160 /* input channels per group */,
1520 960 /* output_channels_per_group */,
1521 160 /* input pixel stride */,
1522 960 /* output pixel stride */,
1523 w161, w162,
1524 0.0f /* output min */, 6.0f /* output max */,
1525 0 /* flags */,
1526 &op58);
1527 if (status != xnn_status_success) {
1528 std::cerr << "failed to create operation #58" << std::endl;
1529 return ExecutionPlan();
1530 }
1531 operators.emplace_back(op58, xnn_delete_operator);
1532
1533 xnn_operator_t op59 = nullptr;
1534 status = xnn_create_convolution2d_nhwc_f32(
1535 1 /* top padding */, 1 /* right padding */,
1536 1 /* bottom padding */, 1 /* left padding */,
1537 3 /* kernel height */, 3 /* kernel width */,
1538 1 /* subsampling height */, 1 /* subsampling width */,
1539 1 /* dilation_height */, 1 /* dilation_width */,
1540 960 /* groups */,
1541 1 /* input channels per group */,
1542 1 /* output_channels_per_group */,
1543 960 /* input pixel stride */,
1544 960 /* output pixel stride */,
1545 w163, w164,
1546 0.0f /* output min */, 6.0f /* output max */,
1547 0 /* flags */,
1548 &op59);
1549 if (status != xnn_status_success) {
1550 std::cerr << "failed to create operation #59" << std::endl;
1551 return ExecutionPlan();
1552 }
1553 operators.emplace_back(op59, xnn_delete_operator);
1554
1555 xnn_operator_t op60 = nullptr;
1556 status = xnn_create_convolution2d_nhwc_f32(
1557 0 /* top padding */, 0 /* right padding */,
1558 0 /* bottom padding */, 0 /* left padding */,
1559 1 /* kernel height */, 1 /* kernel width */,
1560 1 /* subsampling height */, 1 /* subsampling width */,
1561 1 /* dilation_height */, 1 /* dilation_width */,
1562 1 /* groups */,
1563 960 /* input channels per group */,
1564 320 /* output_channels_per_group */,
1565 960 /* input pixel stride */,
1566 320 /* output pixel stride */,
1567 w165, w166,
1568 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1569 0 /* flags */,
1570 &op60);
1571 if (status != xnn_status_success) {
1572 std::cerr << "failed to create operation #60" << std::endl;
1573 return ExecutionPlan();
1574 }
1575 operators.emplace_back(op60, xnn_delete_operator);
1576
1577 xnn_operator_t op61 = nullptr;
1578 status = xnn_create_convolution2d_nhwc_f32(
1579 0 /* top padding */, 0 /* right padding */,
1580 0 /* bottom padding */, 0 /* left padding */,
1581 1 /* kernel height */, 1 /* kernel width */,
1582 1 /* subsampling height */, 1 /* subsampling width */,
1583 1 /* dilation_height */, 1 /* dilation_width */,
1584 1 /* groups */,
1585 320 /* input channels per group */,
1586 1280 /* output_channels_per_group */,
1587 320 /* input pixel stride */,
1588 1280 /* output pixel stride */,
1589 w167, w168,
1590 0.0f /* output min */, 6.0f /* output max */,
1591 0 /* flags */,
1592 &op61);
1593 if (status != xnn_status_success) {
1594 std::cerr << "failed to create operation #61" << std::endl;
1595 return ExecutionPlan();
1596 }
1597 operators.emplace_back(op61, xnn_delete_operator);
1598
1599 xnn_operator_t op62 = nullptr;
1600 status = xnn_create_global_average_pooling_nwc_f32(
Marat Dukhanfd582932019-11-20 19:53:36 -08001601 1280 /* channels */, 1280 /* input stride */, 1280 /* output stride */,
Marat Dukhanc068bb62019-10-04 13:24:39 -07001602 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
1603 0 /* flags */,
1604 &op62);
1605 if (status != xnn_status_success) {
1606 std::cerr << "failed to create operation #62" << std::endl;
1607 return ExecutionPlan();
1608 }
1609 operators.emplace_back(op62, xnn_delete_operator);
1610
1611 xnn_operator_t op63 = nullptr;
1612 status = xnn_create_convolution2d_nhwc_f32(
1613 0 /* top padding */, 0 /* right padding */,
1614 0 /* bottom padding */, 0 /* left padding */,
1615 1 /* kernel height */, 1 /* kernel width */,
1616 1 /* subsampling height */, 1 /* subsampling width */,
1617 1 /* dilation_height */, 1 /* dilation_width */,
1618 1 /* groups */,
1619 1280 /* input channels per group */,
1620 1001 /* output_channels_per_group */,
1621 1280 /* input pixel stride */,
1622 1001 /* output pixel stride */,
1623 w169, w170,
1624 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1625 0 /* flags */,
1626 &op63);
1627 if (status != xnn_status_success) {
1628 std::cerr << "failed to create operation #63" << std::endl;
1629 return ExecutionPlan();
1630 }
1631 operators.emplace_back(op63, xnn_delete_operator);
1632
1633
1634
1635 status = xnn_setup_convolution2d_nhwc_f32(
1636 op0,
1637 1 /* batch size */, 224 /* input height */, 224 /* input width */,
1638 &v0[0] /* input */, &v1[0] /* output */,
1639 threadpool /* threadpool */);
1640 if (status != xnn_status_success) {
1641 std::cerr << "failed to setup operation #0" << std::endl;
1642 return ExecutionPlan();
1643 }
1644
1645 status = xnn_setup_convolution2d_nhwc_f32(
1646 op1,
1647 1 /* batch size */, 112 /* input height */, 112 /* input width */,
1648 &v1[0] /* input */, &v2[0] /* output */,
1649 threadpool /* threadpool */);
1650 if (status != xnn_status_success) {
1651 std::cerr << "failed to setup operation #1" << std::endl;
1652 return ExecutionPlan();
1653 }
1654
1655 status = xnn_setup_convolution2d_nhwc_f32(
1656 op2,
1657 1 /* batch size */, 112 /* input height */, 112 /* input width */,
1658 &v2[0] /* input */, &v3[0] /* output */,
1659 threadpool /* threadpool */);
1660 if (status != xnn_status_success) {
1661 std::cerr << "failed to setup operation #2" << std::endl;
1662 return ExecutionPlan();
1663 }
1664
1665 status = xnn_setup_convolution2d_nhwc_f32(
1666 op3,
1667 1 /* batch size */, 112 /* input height */, 112 /* input width */,
1668 &v3[0] /* input */, &v4[0] /* output */,
1669 threadpool /* threadpool */);
1670 if (status != xnn_status_success) {
1671 std::cerr << "failed to setup operation #3" << std::endl;
1672 return ExecutionPlan();
1673 }
1674
1675 status = xnn_setup_convolution2d_nhwc_f32(
1676 op4,
1677 1 /* batch size */, 112 /* input height */, 112 /* input width */,
1678 &v4[0] /* input */, &v5[0] /* output */,
1679 threadpool /* threadpool */);
1680 if (status != xnn_status_success) {
1681 std::cerr << "failed to setup operation #4" << std::endl;
1682 return ExecutionPlan();
1683 }
1684
1685 status = xnn_setup_convolution2d_nhwc_f32(
1686 op5,
1687 1 /* batch size */, 56 /* input height */, 56 /* input width */,
1688 &v5[0] /* input */, &v6[0] /* output */,
1689 threadpool /* threadpool */);
1690 if (status != xnn_status_success) {
1691 std::cerr << "failed to setup operation #5" << std::endl;
1692 return ExecutionPlan();
1693 }
1694
1695 status = xnn_setup_convolution2d_nhwc_f32(
1696 op6,
1697 1 /* batch size */, 56 /* input height */, 56 /* input width */,
1698 &v6[0] /* input */, &v7[0] /* output */,
1699 threadpool /* threadpool */);
1700 if (status != xnn_status_success) {
1701 std::cerr << "failed to setup operation #6" << std::endl;
1702 return ExecutionPlan();
1703 }
1704
1705 status = xnn_setup_convolution2d_nhwc_f32(
1706 op7,
1707 1 /* batch size */, 56 /* input height */, 56 /* input width */,
1708 &v7[0] /* input */, &v8[0] /* output */,
1709 threadpool /* threadpool */);
1710 if (status != xnn_status_success) {
1711 std::cerr << "failed to setup operation #7" << std::endl;
1712 return ExecutionPlan();
1713 }
1714
1715 status = xnn_setup_convolution2d_nhwc_f32(
1716 op8,
1717 1 /* batch size */, 56 /* input height */, 56 /* input width */,
1718 &v8[0] /* input */, &v9[0] /* output */,
1719 threadpool /* threadpool */);
1720 if (status != xnn_status_success) {
1721 std::cerr << "failed to setup operation #8" << std::endl;
1722 return ExecutionPlan();
1723 }
1724
1725 status = xnn_setup_add_nc_f32(
1726 op9,
1727 3136 /* batch size */,
1728 &v9[0] /* a */, &v6[0] /* b */, &v10[0] /* sum */,
1729 threadpool /* threadpool */);
1730 if (status != xnn_status_success) {
1731 std::cerr << "failed to setup operation #9" << std::endl;
1732 return ExecutionPlan();
1733 }
1734
1735 status = xnn_setup_convolution2d_nhwc_f32(
1736 op10,
1737 1 /* batch size */, 56 /* input height */, 56 /* input width */,
1738 &v10[0] /* input */, &v11[0] /* output */,
1739 threadpool /* threadpool */);
1740 if (status != xnn_status_success) {
1741 std::cerr << "failed to setup operation #10" << std::endl;
1742 return ExecutionPlan();
1743 }
1744
1745 status = xnn_setup_convolution2d_nhwc_f32(
1746 op11,
1747 1 /* batch size */, 56 /* input height */, 56 /* input width */,
1748 &v11[0] /* input */, &v12[0] /* output */,
1749 threadpool /* threadpool */);
1750 if (status != xnn_status_success) {
1751 std::cerr << "failed to setup operation #11" << std::endl;
1752 return ExecutionPlan();
1753 }
1754
1755 status = xnn_setup_convolution2d_nhwc_f32(
1756 op12,
1757 1 /* batch size */, 28 /* input height */, 28 /* input width */,
1758 &v12[0] /* input */, &v13[0] /* output */,
1759 threadpool /* threadpool */);
1760 if (status != xnn_status_success) {
1761 std::cerr << "failed to setup operation #12" << std::endl;
1762 return ExecutionPlan();
1763 }
1764
1765 status = xnn_setup_convolution2d_nhwc_f32(
1766 op13,
1767 1 /* batch size */, 28 /* input height */, 28 /* input width */,
1768 &v13[0] /* input */, &v14[0] /* output */,
1769 threadpool /* threadpool */);
1770 if (status != xnn_status_success) {
1771 std::cerr << "failed to setup operation #13" << std::endl;
1772 return ExecutionPlan();
1773 }
1774
1775 status = xnn_setup_convolution2d_nhwc_f32(
1776 op14,
1777 1 /* batch size */, 28 /* input height */, 28 /* input width */,
1778 &v14[0] /* input */, &v15[0] /* output */,
1779 threadpool /* threadpool */);
1780 if (status != xnn_status_success) {
1781 std::cerr << "failed to setup operation #14" << std::endl;
1782 return ExecutionPlan();
1783 }
1784
1785 status = xnn_setup_convolution2d_nhwc_f32(
1786 op15,
1787 1 /* batch size */, 28 /* input height */, 28 /* input width */,
1788 &v15[0] /* input */, &v16[0] /* output */,
1789 threadpool /* threadpool */);
1790 if (status != xnn_status_success) {
1791 std::cerr << "failed to setup operation #15" << std::endl;
1792 return ExecutionPlan();
1793 }
1794
1795 status = xnn_setup_add_nc_f32(
1796 op16,
1797 784 /* batch size */,
1798 &v16[0] /* a */, &v13[0] /* b */, &v17[0] /* sum */,
1799 threadpool /* threadpool */);
1800 if (status != xnn_status_success) {
1801 std::cerr << "failed to setup operation #16" << std::endl;
1802 return ExecutionPlan();
1803 }
1804
1805 status = xnn_setup_convolution2d_nhwc_f32(
1806 op17,
1807 1 /* batch size */, 28 /* input height */, 28 /* input width */,
1808 &v17[0] /* input */, &v18[0] /* output */,
1809 threadpool /* threadpool */);
1810 if (status != xnn_status_success) {
1811 std::cerr << "failed to setup operation #17" << std::endl;
1812 return ExecutionPlan();
1813 }
1814
1815 status = xnn_setup_convolution2d_nhwc_f32(
1816 op18,
1817 1 /* batch size */, 28 /* input height */, 28 /* input width */,
1818 &v18[0] /* input */, &v19[0] /* output */,
1819 threadpool /* threadpool */);
1820 if (status != xnn_status_success) {
1821 std::cerr << "failed to setup operation #18" << std::endl;
1822 return ExecutionPlan();
1823 }
1824
1825 status = xnn_setup_convolution2d_nhwc_f32(
1826 op19,
1827 1 /* batch size */, 28 /* input height */, 28 /* input width */,
1828 &v19[0] /* input */, &v20[0] /* output */,
1829 threadpool /* threadpool */);
1830 if (status != xnn_status_success) {
1831 std::cerr << "failed to setup operation #19" << std::endl;
1832 return ExecutionPlan();
1833 }
1834
1835 status = xnn_setup_add_nc_f32(
1836 op20,
1837 784 /* batch size */,
1838 &v20[0] /* a */, &v17[0] /* b */, &v21[0] /* sum */,
1839 threadpool /* threadpool */);
1840 if (status != xnn_status_success) {
1841 std::cerr << "failed to setup operation #20" << std::endl;
1842 return ExecutionPlan();
1843 }
1844
1845 status = xnn_setup_convolution2d_nhwc_f32(
1846 op21,
1847 1 /* batch size */, 28 /* input height */, 28 /* input width */,
1848 &v21[0] /* input */, &v22[0] /* output */,
1849 threadpool /* threadpool */);
1850 if (status != xnn_status_success) {
1851 std::cerr << "failed to setup operation #21" << std::endl;
1852 return ExecutionPlan();
1853 }
1854
1855 status = xnn_setup_convolution2d_nhwc_f32(
1856 op22,
1857 1 /* batch size */, 28 /* input height */, 28 /* input width */,
1858 &v22[0] /* input */, &v23[0] /* output */,
1859 threadpool /* threadpool */);
1860 if (status != xnn_status_success) {
1861 std::cerr << "failed to setup operation #22" << std::endl;
1862 return ExecutionPlan();
1863 }
1864
1865 status = xnn_setup_convolution2d_nhwc_f32(
1866 op23,
1867 1 /* batch size */, 14 /* input height */, 14 /* input width */,
1868 &v23[0] /* input */, &v24[0] /* output */,
1869 threadpool /* threadpool */);
1870 if (status != xnn_status_success) {
1871 std::cerr << "failed to setup operation #23" << std::endl;
1872 return ExecutionPlan();
1873 }
1874
1875 status = xnn_setup_convolution2d_nhwc_f32(
1876 op24,
1877 1 /* batch size */, 14 /* input height */, 14 /* input width */,
1878 &v24[0] /* input */, &v25[0] /* output */,
1879 threadpool /* threadpool */);
1880 if (status != xnn_status_success) {
1881 std::cerr << "failed to setup operation #24" << std::endl;
1882 return ExecutionPlan();
1883 }
1884
1885 status = xnn_setup_convolution2d_nhwc_f32(
1886 op25,
1887 1 /* batch size */, 14 /* input height */, 14 /* input width */,
1888 &v25[0] /* input */, &v26[0] /* output */,
1889 threadpool /* threadpool */);
1890 if (status != xnn_status_success) {
1891 std::cerr << "failed to setup operation #25" << std::endl;
1892 return ExecutionPlan();
1893 }
1894
1895 status = xnn_setup_convolution2d_nhwc_f32(
1896 op26,
1897 1 /* batch size */, 14 /* input height */, 14 /* input width */,
1898 &v26[0] /* input */, &v27[0] /* output */,
1899 threadpool /* threadpool */);
1900 if (status != xnn_status_success) {
1901 std::cerr << "failed to setup operation #26" << std::endl;
1902 return ExecutionPlan();
1903 }
1904
1905 status = xnn_setup_add_nc_f32(
1906 op27,
1907 196 /* batch size */,
1908 &v27[0] /* a */, &v24[0] /* b */, &v28[0] /* sum */,
1909 threadpool /* threadpool */);
1910 if (status != xnn_status_success) {
1911 std::cerr << "failed to setup operation #27" << std::endl;
1912 return ExecutionPlan();
1913 }
1914
1915 status = xnn_setup_convolution2d_nhwc_f32(
1916 op28,
1917 1 /* batch size */, 14 /* input height */, 14 /* input width */,
1918 &v28[0] /* input */, &v29[0] /* output */,
1919 threadpool /* threadpool */);
1920 if (status != xnn_status_success) {
1921 std::cerr << "failed to setup operation #28" << std::endl;
1922 return ExecutionPlan();
1923 }
1924
1925 status = xnn_setup_convolution2d_nhwc_f32(
1926 op29,
1927 1 /* batch size */, 14 /* input height */, 14 /* input width */,
1928 &v29[0] /* input */, &v30[0] /* output */,
1929 threadpool /* threadpool */);
1930 if (status != xnn_status_success) {
1931 std::cerr << "failed to setup operation #29" << std::endl;
1932 return ExecutionPlan();
1933 }
1934
1935 status = xnn_setup_convolution2d_nhwc_f32(
1936 op30,
1937 1 /* batch size */, 14 /* input height */, 14 /* input width */,
1938 &v30[0] /* input */, &v31[0] /* output */,
1939 threadpool /* threadpool */);
1940 if (status != xnn_status_success) {
1941 std::cerr << "failed to setup operation #30" << std::endl;
1942 return ExecutionPlan();
1943 }
1944
1945 status = xnn_setup_add_nc_f32(
1946 op31,
1947 196 /* batch size */,
1948 &v31[0] /* a */, &v28[0] /* b */, &v32[0] /* sum */,
1949 threadpool /* threadpool */);
1950 if (status != xnn_status_success) {
1951 std::cerr << "failed to setup operation #31" << std::endl;
1952 return ExecutionPlan();
1953 }
1954
1955 status = xnn_setup_convolution2d_nhwc_f32(
1956 op32,
1957 1 /* batch size */, 14 /* input height */, 14 /* input width */,
1958 &v32[0] /* input */, &v33[0] /* output */,
1959 threadpool /* threadpool */);
1960 if (status != xnn_status_success) {
1961 std::cerr << "failed to setup operation #32" << std::endl;
1962 return ExecutionPlan();
1963 }
1964
1965 status = xnn_setup_convolution2d_nhwc_f32(
1966 op33,
1967 1 /* batch size */, 14 /* input height */, 14 /* input width */,
1968 &v33[0] /* input */, &v34[0] /* output */,
1969 threadpool /* threadpool */);
1970 if (status != xnn_status_success) {
1971 std::cerr << "failed to setup operation #33" << std::endl;
1972 return ExecutionPlan();
1973 }
1974
1975 status = xnn_setup_convolution2d_nhwc_f32(
1976 op34,
1977 1 /* batch size */, 14 /* input height */, 14 /* input width */,
1978 &v34[0] /* input */, &v35[0] /* output */,
1979 threadpool /* threadpool */);
1980 if (status != xnn_status_success) {
1981 std::cerr << "failed to setup operation #34" << std::endl;
1982 return ExecutionPlan();
1983 }
1984
1985 status = xnn_setup_add_nc_f32(
1986 op35,
1987 196 /* batch size */,
1988 &v35[0] /* a */, &v32[0] /* b */, &v36[0] /* sum */,
1989 threadpool /* threadpool */);
1990 if (status != xnn_status_success) {
1991 std::cerr << "failed to setup operation #35" << std::endl;
1992 return ExecutionPlan();
1993 }
1994
1995 status = xnn_setup_convolution2d_nhwc_f32(
1996 op36,
1997 1 /* batch size */, 14 /* input height */, 14 /* input width */,
1998 &v36[0] /* input */, &v37[0] /* output */,
1999 threadpool /* threadpool */);
2000 if (status != xnn_status_success) {
2001 std::cerr << "failed to setup operation #36" << std::endl;
2002 return ExecutionPlan();
2003 }
2004
2005 status = xnn_setup_convolution2d_nhwc_f32(
2006 op37,
2007 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2008 &v37[0] /* input */, &v38[0] /* output */,
2009 threadpool /* threadpool */);
2010 if (status != xnn_status_success) {
2011 std::cerr << "failed to setup operation #37" << std::endl;
2012 return ExecutionPlan();
2013 }
2014
2015 status = xnn_setup_convolution2d_nhwc_f32(
2016 op38,
2017 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2018 &v38[0] /* input */, &v39[0] /* output */,
2019 threadpool /* threadpool */);
2020 if (status != xnn_status_success) {
2021 std::cerr << "failed to setup operation #38" << std::endl;
2022 return ExecutionPlan();
2023 }
2024
2025 status = xnn_setup_convolution2d_nhwc_f32(
2026 op39,
2027 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2028 &v39[0] /* input */, &v40[0] /* output */,
2029 threadpool /* threadpool */);
2030 if (status != xnn_status_success) {
2031 std::cerr << "failed to setup operation #39" << std::endl;
2032 return ExecutionPlan();
2033 }
2034
2035 status = xnn_setup_convolution2d_nhwc_f32(
2036 op40,
2037 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2038 &v40[0] /* input */, &v41[0] /* output */,
2039 threadpool /* threadpool */);
2040 if (status != xnn_status_success) {
2041 std::cerr << "failed to setup operation #40" << std::endl;
2042 return ExecutionPlan();
2043 }
2044
2045 status = xnn_setup_convolution2d_nhwc_f32(
2046 op41,
2047 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2048 &v41[0] /* input */, &v42[0] /* output */,
2049 threadpool /* threadpool */);
2050 if (status != xnn_status_success) {
2051 std::cerr << "failed to setup operation #41" << std::endl;
2052 return ExecutionPlan();
2053 }
2054
2055 status = xnn_setup_add_nc_f32(
2056 op42,
2057 196 /* batch size */,
2058 &v42[0] /* a */, &v39[0] /* b */, &v43[0] /* sum */,
2059 threadpool /* threadpool */);
2060 if (status != xnn_status_success) {
2061 std::cerr << "failed to setup operation #42" << std::endl;
2062 return ExecutionPlan();
2063 }
2064
2065 status = xnn_setup_convolution2d_nhwc_f32(
2066 op43,
2067 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2068 &v43[0] /* input */, &v44[0] /* output */,
2069 threadpool /* threadpool */);
2070 if (status != xnn_status_success) {
2071 std::cerr << "failed to setup operation #43" << std::endl;
2072 return ExecutionPlan();
2073 }
2074
2075 status = xnn_setup_convolution2d_nhwc_f32(
2076 op44,
2077 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2078 &v44[0] /* input */, &v45[0] /* output */,
2079 threadpool /* threadpool */);
2080 if (status != xnn_status_success) {
2081 std::cerr << "failed to setup operation #44" << std::endl;
2082 return ExecutionPlan();
2083 }
2084
2085 status = xnn_setup_convolution2d_nhwc_f32(
2086 op45,
2087 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2088 &v45[0] /* input */, &v46[0] /* output */,
2089 threadpool /* threadpool */);
2090 if (status != xnn_status_success) {
2091 std::cerr << "failed to setup operation #45" << std::endl;
2092 return ExecutionPlan();
2093 }
2094
2095 status = xnn_setup_add_nc_f32(
2096 op46,
2097 196 /* batch size */,
2098 &v46[0] /* a */, &v43[0] /* b */, &v47[0] /* sum */,
2099 threadpool /* threadpool */);
2100 if (status != xnn_status_success) {
2101 std::cerr << "failed to setup operation #46" << std::endl;
2102 return ExecutionPlan();
2103 }
2104
2105 status = xnn_setup_convolution2d_nhwc_f32(
2106 op47,
2107 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2108 &v47[0] /* input */, &v48[0] /* output */,
2109 threadpool /* threadpool */);
2110 if (status != xnn_status_success) {
2111 std::cerr << "failed to setup operation #47" << std::endl;
2112 return ExecutionPlan();
2113 }
2114
2115 status = xnn_setup_convolution2d_nhwc_f32(
2116 op48,
2117 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2118 &v48[0] /* input */, &v49[0] /* output */,
2119 threadpool /* threadpool */);
2120 if (status != xnn_status_success) {
2121 std::cerr << "failed to setup operation #48" << std::endl;
2122 return ExecutionPlan();
2123 }
2124
2125 status = xnn_setup_convolution2d_nhwc_f32(
2126 op49,
2127 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2128 &v49[0] /* input */, &v50[0] /* output */,
2129 threadpool /* threadpool */);
2130 if (status != xnn_status_success) {
2131 std::cerr << "failed to setup operation #49" << std::endl;
2132 return ExecutionPlan();
2133 }
2134
2135 status = xnn_setup_convolution2d_nhwc_f32(
2136 op50,
2137 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2138 &v50[0] /* input */, &v51[0] /* output */,
2139 threadpool /* threadpool */);
2140 if (status != xnn_status_success) {
2141 std::cerr << "failed to setup operation #50" << std::endl;
2142 return ExecutionPlan();
2143 }
2144
2145 status = xnn_setup_convolution2d_nhwc_f32(
2146 op51,
2147 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2148 &v51[0] /* input */, &v52[0] /* output */,
2149 threadpool /* threadpool */);
2150 if (status != xnn_status_success) {
2151 std::cerr << "failed to setup operation #51" << std::endl;
2152 return ExecutionPlan();
2153 }
2154
2155 status = xnn_setup_convolution2d_nhwc_f32(
2156 op52,
2157 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2158 &v52[0] /* input */, &v53[0] /* output */,
2159 threadpool /* threadpool */);
2160 if (status != xnn_status_success) {
2161 std::cerr << "failed to setup operation #52" << std::endl;
2162 return ExecutionPlan();
2163 }
2164
2165 status = xnn_setup_add_nc_f32(
2166 op53,
2167 49 /* batch size */,
2168 &v53[0] /* a */, &v50[0] /* b */, &v54[0] /* sum */,
2169 threadpool /* threadpool */);
2170 if (status != xnn_status_success) {
2171 std::cerr << "failed to setup operation #53" << std::endl;
2172 return ExecutionPlan();
2173 }
2174
2175 status = xnn_setup_convolution2d_nhwc_f32(
2176 op54,
2177 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2178 &v54[0] /* input */, &v55[0] /* output */,
2179 threadpool /* threadpool */);
2180 if (status != xnn_status_success) {
2181 std::cerr << "failed to setup operation #54" << std::endl;
2182 return ExecutionPlan();
2183 }
2184
2185 status = xnn_setup_convolution2d_nhwc_f32(
2186 op55,
2187 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2188 &v55[0] /* input */, &v56[0] /* output */,
2189 threadpool /* threadpool */);
2190 if (status != xnn_status_success) {
2191 std::cerr << "failed to setup operation #55" << std::endl;
2192 return ExecutionPlan();
2193 }
2194
2195 status = xnn_setup_convolution2d_nhwc_f32(
2196 op56,
2197 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2198 &v56[0] /* input */, &v57[0] /* output */,
2199 threadpool /* threadpool */);
2200 if (status != xnn_status_success) {
2201 std::cerr << "failed to setup operation #56" << std::endl;
2202 return ExecutionPlan();
2203 }
2204
2205 status = xnn_setup_add_nc_f32(
2206 op57,
2207 49 /* batch size */,
2208 &v57[0] /* a */, &v54[0] /* b */, &v58[0] /* sum */,
2209 threadpool /* threadpool */);
2210 if (status != xnn_status_success) {
2211 std::cerr << "failed to setup operation #57" << std::endl;
2212 return ExecutionPlan();
2213 }
2214
2215 status = xnn_setup_convolution2d_nhwc_f32(
2216 op58,
2217 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2218 &v58[0] /* input */, &v59[0] /* output */,
2219 threadpool /* threadpool */);
2220 if (status != xnn_status_success) {
2221 std::cerr << "failed to setup operation #58" << std::endl;
2222 return ExecutionPlan();
2223 }
2224
2225 status = xnn_setup_convolution2d_nhwc_f32(
2226 op59,
2227 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2228 &v59[0] /* input */, &v60[0] /* output */,
2229 threadpool /* threadpool */);
2230 if (status != xnn_status_success) {
2231 std::cerr << "failed to setup operation #59" << std::endl;
2232 return ExecutionPlan();
2233 }
2234
2235 status = xnn_setup_convolution2d_nhwc_f32(
2236 op60,
2237 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2238 &v60[0] /* input */, &v61[0] /* output */,
2239 threadpool /* threadpool */);
2240 if (status != xnn_status_success) {
2241 std::cerr << "failed to setup operation #60" << std::endl;
2242 return ExecutionPlan();
2243 }
2244
2245 status = xnn_setup_convolution2d_nhwc_f32(
2246 op61,
2247 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2248 &v61[0] /* input */, &v62[0] /* output */,
2249 threadpool /* threadpool */);
2250 if (status != xnn_status_success) {
2251 std::cerr << "failed to setup operation #61" << std::endl;
2252 return ExecutionPlan();
2253 }
2254
2255 status = xnn_setup_global_average_pooling_nwc_f32(
2256 op62,
2257 1 /* batch size */, 49 /* width */,
2258 &v62[0] /* input */, &v63[0] /* output */,
2259 threadpool /* threadpool */);
2260 if (status != xnn_status_success) {
2261 std::cerr << "failed to setup operation #62" << std::endl;
2262 return ExecutionPlan();
2263 }
2264
2265 status = xnn_setup_convolution2d_nhwc_f32(
2266 op63,
2267 1 /* batch size */, 1 /* input height */, 1 /* input width */,
2268 &v63[0] /* input */, &v64[0] /* output */,
2269 threadpool /* threadpool */);
2270 if (status != xnn_status_success) {
2271 std::cerr << "failed to setup operation #63" << std::endl;
2272 return ExecutionPlan();
2273 }
2274
2275 #pragma clang diagnostic push
2276 #pragma clang diagnostic ignored "-Wpessimizing-move"
2277 return operators;
2278 #pragma clang diagnostic pop
2279}
2280
2281} // namespace models