1 // Copyright (c) Facebook, Inc. and its affiliates.
2 // All rights reserved.
3 //
4 // Copyright 2019 Google LLC
5 //
6 // This source code is licensed under the BSD-style license found in the
7 // LICENSE file in the root directory of this source tree.
8
9 #include <gtest/gtest.h>
10
11 #include "fully-connected-operator-tester.h"
12
13
TEST(FULLY_CONNECTED_NC_QS8,unit_batch)14 TEST(FULLY_CONNECTED_NC_QS8, unit_batch) {
15 FullyConnectedOperatorTester()
16 .batch_size(1)
17 .input_channels(23)
18 .output_channels(19)
19 .iterations(3)
20 .TestQS8();
21 }
22
TEST(FULLY_CONNECTED_NC_QS8,unit_batch_with_qmin)23 TEST(FULLY_CONNECTED_NC_QS8, unit_batch_with_qmin) {
24 FullyConnectedOperatorTester()
25 .batch_size(1)
26 .input_channels(23)
27 .output_channels(19)
28 .qmin(128)
29 .iterations(3)
30 .TestQS8();
31 }
32
TEST(FULLY_CONNECTED_NC_QS8,unit_batch_with_qmax)33 TEST(FULLY_CONNECTED_NC_QS8, unit_batch_with_qmax) {
34 FullyConnectedOperatorTester()
35 .batch_size(1)
36 .input_channels(23)
37 .output_channels(19)
38 .qmax(128)
39 .iterations(3)
40 .TestQS8();
41 }
42
TEST(FULLY_CONNECTED_NC_QS8,unit_batch_with_input_stride)43 TEST(FULLY_CONNECTED_NC_QS8, unit_batch_with_input_stride) {
44 FullyConnectedOperatorTester()
45 .batch_size(1)
46 .input_channels(23)
47 .input_stride(28)
48 .output_channels(19)
49 .iterations(3)
50 .TestQS8();
51 }
52
TEST(FULLY_CONNECTED_NC_QS8,unit_batch_with_output_stride)53 TEST(FULLY_CONNECTED_NC_QS8, unit_batch_with_output_stride) {
54 FullyConnectedOperatorTester()
55 .batch_size(1)
56 .input_channels(23)
57 .output_channels(19)
58 .output_stride(29)
59 .iterations(3)
60 .TestQS8();
61 }
62
TEST(FULLY_CONNECTED_NC_QS8,unit_batch_transpose_weights)63 TEST(FULLY_CONNECTED_NC_QS8, unit_batch_transpose_weights) {
64 FullyConnectedOperatorTester()
65 .transpose_weights(true)
66 .batch_size(1)
67 .input_channels(23)
68 .output_channels(19)
69 .iterations(3)
70 .TestQS8();
71 }
72
TEST(FULLY_CONNECTED_NC_QS8,unit_batch_without_bias)73 TEST(FULLY_CONNECTED_NC_QS8, unit_batch_without_bias) {
74 FullyConnectedOperatorTester()
75 .has_bias(false)
76 .batch_size(1)
77 .input_channels(23)
78 .output_channels(19)
79 .iterations(3)
80 .TestQS8();
81 }
82
TEST(FULLY_CONNECTED_NC_QS8,small_batch)83 TEST(FULLY_CONNECTED_NC_QS8, small_batch) {
84 FullyConnectedOperatorTester()
85 .batch_size(12)
86 .input_channels(23)
87 .output_channels(19)
88 .iterations(3)
89 .TestQS8();
90 }
91
TEST(FULLY_CONNECTED_NC_QS8,small_batch_with_qmin)92 TEST(FULLY_CONNECTED_NC_QS8, small_batch_with_qmin) {
93 FullyConnectedOperatorTester()
94 .batch_size(12)
95 .input_channels(23)
96 .output_channels(19)
97 .qmin(128)
98 .iterations(3)
99 .TestQS8();
100 }
101
TEST(FULLY_CONNECTED_NC_QS8,small_batch_with_qmax)102 TEST(FULLY_CONNECTED_NC_QS8, small_batch_with_qmax) {
103 FullyConnectedOperatorTester()
104 .batch_size(12)
105 .input_channels(23)
106 .output_channels(19)
107 .qmax(128)
108 .iterations(3)
109 .TestQS8();
110 }
111
TEST(FULLY_CONNECTED_NC_QS8,small_batch_with_input_stride)112 TEST(FULLY_CONNECTED_NC_QS8, small_batch_with_input_stride) {
113 FullyConnectedOperatorTester()
114 .batch_size(12)
115 .input_channels(23)
116 .input_stride(28)
117 .output_channels(19)
118 .iterations(3)
119 .TestQS8();
120 }
121
TEST(FULLY_CONNECTED_NC_QS8,small_batch_with_output_stride)122 TEST(FULLY_CONNECTED_NC_QS8, small_batch_with_output_stride) {
123 FullyConnectedOperatorTester()
124 .batch_size(12)
125 .input_channels(23)
126 .output_channels(19)
127 .output_stride(29)
128 .iterations(3)
129 .TestQS8();
130 }
131
TEST(FULLY_CONNECTED_NC_QS8,small_batch_transpose_weights)132 TEST(FULLY_CONNECTED_NC_QS8, small_batch_transpose_weights) {
133 FullyConnectedOperatorTester()
134 .transpose_weights(true)
135 .batch_size(12)
136 .input_channels(23)
137 .output_channels(19)
138 .iterations(3)
139 .TestQS8();
140 }
141
TEST(FULLY_CONNECTED_NC_QS8,small_batch_without_bias)142 TEST(FULLY_CONNECTED_NC_QS8, small_batch_without_bias) {
143 FullyConnectedOperatorTester()
144 .has_bias(false)
145 .batch_size(12)
146 .input_channels(23)
147 .output_channels(19)
148 .iterations(3)
149 .TestQS8();
150 }
151
TEST(FULLY_CONNECTED_NC_QS8,weights_cache_unit_batch)152 TEST(FULLY_CONNECTED_NC_QS8, weights_cache_unit_batch) {
153 FullyConnectedOperatorTester()
154 .batch_size(1)
155 .input_channels(23)
156 .output_channels(19)
157 .use_weights_cache(true)
158 .iterations(3)
159 .TestQS8();
160 }
161
TEST(FULLY_CONNECTED_NC_QS8,weights_cache_unit_batch_transpose_weights)162 TEST(FULLY_CONNECTED_NC_QS8, weights_cache_unit_batch_transpose_weights) {
163 FullyConnectedOperatorTester()
164 .transpose_weights(true)
165 .batch_size(1)
166 .input_channels(23)
167 .output_channels(19)
168 .use_weights_cache(true)
169 .iterations(3)
170 .TestQS8();
171 }
172
TEST(FULLY_CONNECTED_NC_QU8,unit_batch)173 TEST(FULLY_CONNECTED_NC_QU8, unit_batch) {
174 FullyConnectedOperatorTester()
175 .batch_size(1)
176 .input_channels(23)
177 .output_channels(19)
178 .iterations(3)
179 .TestQU8();
180 }
181
TEST(FULLY_CONNECTED_NC_QU8,unit_batch_with_qmin)182 TEST(FULLY_CONNECTED_NC_QU8, unit_batch_with_qmin) {
183 FullyConnectedOperatorTester()
184 .batch_size(1)
185 .input_channels(23)
186 .output_channels(19)
187 .qmin(128)
188 .iterations(3)
189 .TestQU8();
190 }
191
TEST(FULLY_CONNECTED_NC_QU8,unit_batch_with_qmax)192 TEST(FULLY_CONNECTED_NC_QU8, unit_batch_with_qmax) {
193 FullyConnectedOperatorTester()
194 .batch_size(1)
195 .input_channels(23)
196 .output_channels(19)
197 .qmax(128)
198 .iterations(3)
199 .TestQU8();
200 }
201
TEST(FULLY_CONNECTED_NC_QU8,unit_batch_with_input_stride)202 TEST(FULLY_CONNECTED_NC_QU8, unit_batch_with_input_stride) {
203 FullyConnectedOperatorTester()
204 .batch_size(1)
205 .input_channels(23)
206 .input_stride(28)
207 .output_channels(19)
208 .iterations(3)
209 .TestQU8();
210 }
211
TEST(FULLY_CONNECTED_NC_QU8,unit_batch_with_output_stride)212 TEST(FULLY_CONNECTED_NC_QU8, unit_batch_with_output_stride) {
213 FullyConnectedOperatorTester()
214 .batch_size(1)
215 .input_channels(23)
216 .output_channels(19)
217 .output_stride(29)
218 .iterations(3)
219 .TestQU8();
220 }
221
TEST(FULLY_CONNECTED_NC_QU8,unit_batch_transpose_weights)222 TEST(FULLY_CONNECTED_NC_QU8, unit_batch_transpose_weights) {
223 FullyConnectedOperatorTester()
224 .transpose_weights(true)
225 .batch_size(1)
226 .input_channels(23)
227 .output_channels(19)
228 .iterations(3)
229 .TestQU8();
230 }
231
TEST(FULLY_CONNECTED_NC_QU8,unit_batch_without_bias)232 TEST(FULLY_CONNECTED_NC_QU8, unit_batch_without_bias) {
233 FullyConnectedOperatorTester()
234 .has_bias(false)
235 .batch_size(1)
236 .input_channels(23)
237 .output_channels(19)
238 .iterations(3)
239 .TestQU8();
240 }
241
TEST(FULLY_CONNECTED_NC_QU8,small_batch)242 TEST(FULLY_CONNECTED_NC_QU8, small_batch) {
243 FullyConnectedOperatorTester()
244 .batch_size(12)
245 .input_channels(23)
246 .output_channels(19)
247 .iterations(3)
248 .TestQU8();
249 }
250
TEST(FULLY_CONNECTED_NC_QU8,small_batch_with_qmin)251 TEST(FULLY_CONNECTED_NC_QU8, small_batch_with_qmin) {
252 FullyConnectedOperatorTester()
253 .batch_size(12)
254 .input_channels(23)
255 .output_channels(19)
256 .qmin(128)
257 .iterations(3)
258 .TestQU8();
259 }
260
TEST(FULLY_CONNECTED_NC_QU8,small_batch_with_qmax)261 TEST(FULLY_CONNECTED_NC_QU8, small_batch_with_qmax) {
262 FullyConnectedOperatorTester()
263 .batch_size(12)
264 .input_channels(23)
265 .output_channels(19)
266 .qmax(128)
267 .iterations(3)
268 .TestQU8();
269 }
270
TEST(FULLY_CONNECTED_NC_QU8,small_batch_with_input_stride)271 TEST(FULLY_CONNECTED_NC_QU8, small_batch_with_input_stride) {
272 FullyConnectedOperatorTester()
273 .batch_size(12)
274 .input_channels(23)
275 .input_stride(28)
276 .output_channels(19)
277 .iterations(3)
278 .TestQU8();
279 }
280
TEST(FULLY_CONNECTED_NC_QU8,small_batch_with_output_stride)281 TEST(FULLY_CONNECTED_NC_QU8, small_batch_with_output_stride) {
282 FullyConnectedOperatorTester()
283 .batch_size(12)
284 .input_channels(23)
285 .output_channels(19)
286 .output_stride(29)
287 .iterations(3)
288 .TestQU8();
289 }
290
TEST(FULLY_CONNECTED_NC_QU8,small_batch_transpose_weights)291 TEST(FULLY_CONNECTED_NC_QU8, small_batch_transpose_weights) {
292 FullyConnectedOperatorTester()
293 .transpose_weights(true)
294 .batch_size(12)
295 .input_channels(23)
296 .output_channels(19)
297 .iterations(3)
298 .TestQU8();
299 }
300
TEST(FULLY_CONNECTED_NC_QU8,small_batch_without_bias)301 TEST(FULLY_CONNECTED_NC_QU8, small_batch_without_bias) {
302 FullyConnectedOperatorTester()
303 .has_bias(false)
304 .batch_size(12)
305 .input_channels(23)
306 .output_channels(19)
307 .iterations(3)
308 .TestQU8();
309 }
310
TEST(FULLY_CONNECTED_NC_QU8,weights_cache_unit_batch)311 TEST(FULLY_CONNECTED_NC_QU8, weights_cache_unit_batch) {
312 FullyConnectedOperatorTester()
313 .batch_size(1)
314 .input_channels(23)
315 .output_channels(19)
316 .use_weights_cache(true)
317 .iterations(3)
318 .TestQU8();
319 }
320
TEST(FULLY_CONNECTED_NC_QU8,weights_cache_unit_batch_transpose_weights)321 TEST(FULLY_CONNECTED_NC_QU8, weights_cache_unit_batch_transpose_weights) {
322 FullyConnectedOperatorTester()
323 .transpose_weights(true)
324 .batch_size(1)
325 .input_channels(23)
326 .output_channels(19)
327 .use_weights_cache(true)
328 .iterations(3)
329 .TestQU8();
330 }
331
TEST(FULLY_CONNECTED_NC_F32,unit_batch)332 TEST(FULLY_CONNECTED_NC_F32, unit_batch) {
333 FullyConnectedOperatorTester()
334 .batch_size(1)
335 .input_channels(23)
336 .output_channels(19)
337 .iterations(3)
338 .TestF32();
339 }
340
TEST(FULLY_CONNECTED_NC_F32,unit_batch_with_qmin)341 TEST(FULLY_CONNECTED_NC_F32, unit_batch_with_qmin) {
342 FullyConnectedOperatorTester()
343 .batch_size(1)
344 .input_channels(23)
345 .output_channels(19)
346 .qmin(128)
347 .iterations(3)
348 .TestF32();
349 }
350
TEST(FULLY_CONNECTED_NC_F32,unit_batch_with_qmax)351 TEST(FULLY_CONNECTED_NC_F32, unit_batch_with_qmax) {
352 FullyConnectedOperatorTester()
353 .batch_size(1)
354 .input_channels(23)
355 .output_channels(19)
356 .qmax(128)
357 .iterations(3)
358 .TestF32();
359 }
360
TEST(FULLY_CONNECTED_NC_F32,unit_batch_with_input_stride)361 TEST(FULLY_CONNECTED_NC_F32, unit_batch_with_input_stride) {
362 FullyConnectedOperatorTester()
363 .batch_size(1)
364 .input_channels(23)
365 .input_stride(28)
366 .output_channels(19)
367 .iterations(3)
368 .TestF32();
369 }
370
TEST(FULLY_CONNECTED_NC_F32,unit_batch_with_output_stride)371 TEST(FULLY_CONNECTED_NC_F32, unit_batch_with_output_stride) {
372 FullyConnectedOperatorTester()
373 .batch_size(1)
374 .input_channels(23)
375 .output_channels(19)
376 .output_stride(29)
377 .iterations(3)
378 .TestF32();
379 }
380
TEST(FULLY_CONNECTED_NC_F32,unit_batch_transpose_weights)381 TEST(FULLY_CONNECTED_NC_F32, unit_batch_transpose_weights) {
382 FullyConnectedOperatorTester()
383 .transpose_weights(true)
384 .batch_size(1)
385 .input_channels(23)
386 .output_channels(19)
387 .iterations(3)
388 .TestF32();
389 }
390
TEST(FULLY_CONNECTED_NC_F32,unit_batch_without_bias)391 TEST(FULLY_CONNECTED_NC_F32, unit_batch_without_bias) {
392 FullyConnectedOperatorTester()
393 .has_bias(false)
394 .batch_size(1)
395 .input_channels(23)
396 .output_channels(19)
397 .iterations(3)
398 .TestF32();
399 }
400
TEST(FULLY_CONNECTED_NC_F32,small_batch)401 TEST(FULLY_CONNECTED_NC_F32, small_batch) {
402 FullyConnectedOperatorTester()
403 .batch_size(12)
404 .input_channels(23)
405 .output_channels(19)
406 .iterations(3)
407 .TestF32();
408 }
409
TEST(FULLY_CONNECTED_NC_F32,small_batch_with_qmin)410 TEST(FULLY_CONNECTED_NC_F32, small_batch_with_qmin) {
411 FullyConnectedOperatorTester()
412 .batch_size(12)
413 .input_channels(23)
414 .output_channels(19)
415 .qmin(128)
416 .iterations(3)
417 .TestF32();
418 }
419
TEST(FULLY_CONNECTED_NC_F32,small_batch_with_qmax)420 TEST(FULLY_CONNECTED_NC_F32, small_batch_with_qmax) {
421 FullyConnectedOperatorTester()
422 .batch_size(12)
423 .input_channels(23)
424 .output_channels(19)
425 .qmax(128)
426 .iterations(3)
427 .TestF32();
428 }
429
TEST(FULLY_CONNECTED_NC_F32,small_batch_with_input_stride)430 TEST(FULLY_CONNECTED_NC_F32, small_batch_with_input_stride) {
431 FullyConnectedOperatorTester()
432 .batch_size(12)
433 .input_channels(23)
434 .input_stride(28)
435 .output_channels(19)
436 .iterations(3)
437 .TestF32();
438 }
439
TEST(FULLY_CONNECTED_NC_F32,small_batch_with_output_stride)440 TEST(FULLY_CONNECTED_NC_F32, small_batch_with_output_stride) {
441 FullyConnectedOperatorTester()
442 .batch_size(12)
443 .input_channels(23)
444 .output_channels(19)
445 .output_stride(29)
446 .iterations(3)
447 .TestF32();
448 }
449
TEST(FULLY_CONNECTED_NC_F32,small_batch_transpose_weights)450 TEST(FULLY_CONNECTED_NC_F32, small_batch_transpose_weights) {
451 FullyConnectedOperatorTester()
452 .transpose_weights(true)
453 .batch_size(12)
454 .input_channels(23)
455 .output_channels(19)
456 .iterations(3)
457 .TestF32();
458 }
459
TEST(FULLY_CONNECTED_NC_F32,small_batch_without_bias)460 TEST(FULLY_CONNECTED_NC_F32, small_batch_without_bias) {
461 FullyConnectedOperatorTester()
462 .has_bias(false)
463 .batch_size(12)
464 .input_channels(23)
465 .output_channels(19)
466 .iterations(3)
467 .TestF32();
468 }
469
TEST(FULLY_CONNECTED_NC_F32,weights_cache_unit_batch)470 TEST(FULLY_CONNECTED_NC_F32, weights_cache_unit_batch) {
471 FullyConnectedOperatorTester()
472 .batch_size(1)
473 .input_channels(23)
474 .output_channels(19)
475 .use_weights_cache(true)
476 .iterations(3)
477 .TestF32();
478 }
479
TEST(FULLY_CONNECTED_NC_F32,weights_cache_unit_batch_transpose_weights)480 TEST(FULLY_CONNECTED_NC_F32, weights_cache_unit_batch_transpose_weights) {
481 FullyConnectedOperatorTester()
482 .transpose_weights(true)
483 .batch_size(1)
484 .input_channels(23)
485 .output_channels(19)
486 .use_weights_cache(true)
487 .iterations(3)
488 .TestF32();
489 }
490
TEST(FULLY_CONNECTED_NC_F16,unit_batch)491 TEST(FULLY_CONNECTED_NC_F16, unit_batch) {
492 FullyConnectedOperatorTester()
493 .batch_size(1)
494 .input_channels(23)
495 .output_channels(19)
496 .iterations(3)
497 .TestF16();
498 }
499
TEST(FULLY_CONNECTED_NC_F16,unit_batch_with_qmin)500 TEST(FULLY_CONNECTED_NC_F16, unit_batch_with_qmin) {
501 FullyConnectedOperatorTester()
502 .batch_size(1)
503 .input_channels(23)
504 .output_channels(19)
505 .qmin(128)
506 .iterations(3)
507 .TestF16();
508 }
509
TEST(FULLY_CONNECTED_NC_F16,unit_batch_with_qmax)510 TEST(FULLY_CONNECTED_NC_F16, unit_batch_with_qmax) {
511 FullyConnectedOperatorTester()
512 .batch_size(1)
513 .input_channels(23)
514 .output_channels(19)
515 .qmax(128)
516 .iterations(3)
517 .TestF16();
518 }
519
TEST(FULLY_CONNECTED_NC_F16,unit_batch_with_input_stride)520 TEST(FULLY_CONNECTED_NC_F16, unit_batch_with_input_stride) {
521 FullyConnectedOperatorTester()
522 .batch_size(1)
523 .input_channels(23)
524 .input_stride(28)
525 .output_channels(19)
526 .iterations(3)
527 .TestF16();
528 }
529
TEST(FULLY_CONNECTED_NC_F16,unit_batch_with_output_stride)530 TEST(FULLY_CONNECTED_NC_F16, unit_batch_with_output_stride) {
531 FullyConnectedOperatorTester()
532 .batch_size(1)
533 .input_channels(23)
534 .output_channels(19)
535 .output_stride(29)
536 .iterations(3)
537 .TestF16();
538 }
539
TEST(FULLY_CONNECTED_NC_F16,unit_batch_transpose_weights)540 TEST(FULLY_CONNECTED_NC_F16, unit_batch_transpose_weights) {
541 FullyConnectedOperatorTester()
542 .transpose_weights(true)
543 .batch_size(1)
544 .input_channels(23)
545 .output_channels(19)
546 .iterations(3)
547 .TestF16();
548 }
549
TEST(FULLY_CONNECTED_NC_F16,unit_batch_without_bias)550 TEST(FULLY_CONNECTED_NC_F16, unit_batch_without_bias) {
551 FullyConnectedOperatorTester()
552 .has_bias(false)
553 .batch_size(1)
554 .input_channels(23)
555 .output_channels(19)
556 .iterations(3)
557 .TestF16();
558 }
559
TEST(FULLY_CONNECTED_NC_F16,small_batch)560 TEST(FULLY_CONNECTED_NC_F16, small_batch) {
561 FullyConnectedOperatorTester()
562 .batch_size(12)
563 .input_channels(23)
564 .output_channels(19)
565 .iterations(3)
566 .TestF16();
567 }
568
TEST(FULLY_CONNECTED_NC_F16,small_batch_fp32_weights)569 TEST(FULLY_CONNECTED_NC_F16, small_batch_fp32_weights) {
570 FullyConnectedOperatorTester()
571 .weights_type(FullyConnectedOperatorTester::WeightsType::FP32)
572 .batch_size(12)
573 .input_channels(23)
574 .output_channels(19)
575 .iterations(3)
576 .TestF16();
577 }
578
TEST(FULLY_CONNECTED_NC_F16,small_batch_with_qmin)579 TEST(FULLY_CONNECTED_NC_F16, small_batch_with_qmin) {
580 FullyConnectedOperatorTester()
581 .batch_size(12)
582 .input_channels(23)
583 .output_channels(19)
584 .qmin(128)
585 .iterations(3)
586 .TestF16();
587 }
588
TEST(FULLY_CONNECTED_NC_F16,small_batch_with_qmax)589 TEST(FULLY_CONNECTED_NC_F16, small_batch_with_qmax) {
590 FullyConnectedOperatorTester()
591 .batch_size(12)
592 .input_channels(23)
593 .output_channels(19)
594 .qmax(128)
595 .iterations(3)
596 .TestF16();
597 }
598
TEST(FULLY_CONNECTED_NC_F16,small_batch_with_input_stride)599 TEST(FULLY_CONNECTED_NC_F16, small_batch_with_input_stride) {
600 FullyConnectedOperatorTester()
601 .batch_size(12)
602 .input_channels(23)
603 .input_stride(28)
604 .output_channels(19)
605 .iterations(3)
606 .TestF16();
607 }
608
TEST(FULLY_CONNECTED_NC_F16,small_batch_with_output_stride)609 TEST(FULLY_CONNECTED_NC_F16, small_batch_with_output_stride) {
610 FullyConnectedOperatorTester()
611 .batch_size(12)
612 .input_channels(23)
613 .output_channels(19)
614 .output_stride(29)
615 .iterations(3)
616 .TestF16();
617 }
618
TEST(FULLY_CONNECTED_NC_F16,small_batch_transpose_fp32_weights)619 TEST(FULLY_CONNECTED_NC_F16, small_batch_transpose_fp32_weights) {
620 FullyConnectedOperatorTester()
621 .weights_type(FullyConnectedOperatorTester::WeightsType::FP32)
622 .transpose_weights(true)
623 .batch_size(12)
624 .input_channels(23)
625 .output_channels(19)
626 .iterations(3)
627 .TestF16();
628 }
629
TEST(FULLY_CONNECTED_NC_F16,small_batch_without_bias)630 TEST(FULLY_CONNECTED_NC_F16, small_batch_without_bias) {
631 FullyConnectedOperatorTester()
632 .has_bias(false)
633 .batch_size(12)
634 .input_channels(23)
635 .output_channels(19)
636 .iterations(3)
637 .TestF16();
638 }
639
TEST(FULLY_CONNECTED_NC_F16,weights_cache_unit_batch)640 TEST(FULLY_CONNECTED_NC_F16, weights_cache_unit_batch) {
641 FullyConnectedOperatorTester()
642 .batch_size(1)
643 .input_channels(23)
644 .output_channels(19)
645 .use_weights_cache(true)
646 .iterations(3)
647 .TestF16();
648 }
649
TEST(FULLY_CONNECTED_NC_F16,weights_cache_unit_batch_transpose_weights)650 TEST(FULLY_CONNECTED_NC_F16, weights_cache_unit_batch_transpose_weights) {
651 FullyConnectedOperatorTester()
652 .transpose_weights(true)
653 .batch_size(1)
654 .input_channels(23)
655 .output_channels(19)
656 .use_weights_cache(true)
657 .iterations(3)
658 .TestF16();
659 }
660