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