• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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