37 #include "tests/validation/fixtures/DepthwiseConvolutionLayerFixture.h"
63 constexpr
float abs_tolerance_f16(0.03f);
66 const auto width_values_precommit =
make(
"width", { 1
U, 33
U } );
69 const auto width_values_nightly =
make(
"width", { 53
U, 47
U } );
72 const auto height_values_precommit =
make(
"height", { 19
U } );
75 const auto height_values_nightly =
make(
"height", { 39
U, 43
U } );
78 const auto channel_values_precommit =
make(
"channels", { 15
U });
81 const auto channel_values_nightly =
make(
"channels", { 33
U, 19
U });
84 const auto channel_values_export_to_cl_image_precommit =
make(
"channels", { 16
U });
87 const auto channel_values_export_to_cl_image_nightly =
make(
"channels", { 32
U });
90 const auto batch_values_precommit =
make(
"batch", { 1
U, 2
U });
93 const auto batch_values_nightly =
make(
"batch", { 3
U });
102 const auto depth_multiplier_values =
make(
"depth_multiplier", {3
U});
111 const auto padding_valid_values =
make(
"padding_valid", {
true,
false });
114 const auto padding_valid_values_nightly =
make(
"padding_valid", {
false });
126 const auto n0_values_export_to_cl_image_precommit =
make(
"N0", {4});
129 const auto n0_values_export_to_cl_image_nightly =
make(
"N0", {8});
134 const auto activations_rest =
make(
"Activation",
138 ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::LU_BOUNDED_RELU, 0.8f, -0.5f),
159 width_values_precommit,
160 height_values_precommit),
161 channel_values_precommit),
162 batch_values_precommit),
163 kernel_sz_values_precommit),
164 make("depth_multiplier", 1)),
167 padding_valid_values),
172 make("ExportToCLImage", false)))
180 width_values_nightly,
181 height_values_nightly),
182 channel_values_nightly),
183 batch_values_nightly),
184 kernel_sz_values_nightly),
185 make(
"depth_multiplier", 1)),
188 padding_valid_values_nightly),
193 make(
"ExportToCLImage",
false)))
201 make(
"width", { 33
U } ),
202 height_values_precommit,
203 channel_values_precommit,
204 make(
"batch", { 2
U } ),
206 make(
"depth_multiplier", 1),
207 make(
"dilation", Size2D(3U, 3U)),
208 make(
"stride", Size2D(3U, 2U)),
209 padding_valid_values_nightly,
214 make(
"ExportToCLImage",
false)))
223 width_values_precommit,
224 height_values_precommit),
225 channel_values_export_to_cl_image_precommit),
226 batch_values_precommit),
227 kernel_sz_values_precommit),
228 make("depth_multiplier", 1)),
231 padding_valid_values),
235 n0_values_export_to_cl_image_precommit),
236 make("ExportToCLImage", true)))
253 width_values_nightly,
254 height_values_nightly),
255 channel_values_export_to_cl_image_nightly),
256 batch_values_nightly),
257 kernel_sz_values_nightly),
258 make(
"depth_multiplier", 1)),
261 padding_valid_values_nightly),
265 n0_values_export_to_cl_image_nightly),
266 make(
"ExportToCLImage",
true)))
287 width_values_precommit,
288 height_values_precommit),
289 channel_values_precommit),
290 batch_values_precommit),
291 kernel_sz_values_precommit),
292 make("depth_multiplier", 1)),
295 padding_valid_values),
300 make("ExportToCLImage", false)))
307 make(
"width", { 47
U } ),
308 make(
"height", { 39
U } )),
309 make(
"channels", { 19
U } )),
310 batch_values_nightly),
311 make(
"kernel_size", { Size2D(5U, 5U) })),
312 make(
"depth_multiplier", 1)),
313 make(
"dilation", { Size2D(3U, 3U) })),
314 make(
"stride", { Size2D(3U, 2U) })),
315 padding_valid_values_nightly),
318 make(
"Activation", { ActivationLayerInfo() })),
320 make(
"ExportToCLImage",
false)))
323 validate(CLAccessor(_target), _reference, rel_tolerance_f16, 0.f, abs_tolerance_f16);
328 make(
"width", { 33
U } ),
329 height_values_precommit,
330 channel_values_precommit,
331 make(
"batch", { 2
U } ),
333 make(
"depth_multiplier", 4),
334 make(
"dilation", Size2D(3U, 3U)),
335 make(
"stride", Size2D(3U, 2U)),
336 padding_valid_values_nightly,
341 make(
"ExportToCLImage",
false)))
344 validate(CLAccessor(_target), _reference, rel_tolerance_f16, 0.f, abs_tolerance_f16);
350 width_values_precommit,
351 height_values_precommit),
352 channel_values_export_to_cl_image_precommit),
353 batch_values_precommit),
354 kernel_sz_values_precommit),
355 make("depth_multiplier", 1)),
358 padding_valid_values),
362 n0_values_export_to_cl_image_precommit),
363 make("ExportToCLImage", true)))
379 make(
"width", { 47
U } ),
380 make(
"height", { 39
U } )),
381 channel_values_export_to_cl_image_nightly),
382 batch_values_nightly),
384 make(
"depth_multiplier", 1)),
385 make(
"dilation", { Size2D(3U, 3U) })),
386 make(
"stride", { Size2D(3U, 2U) })),
387 padding_valid_values_nightly),
390 make(
"Activation", { ActivationLayerInfo() })),
391 n0_values_export_to_cl_image_nightly),
392 make(
"ExportToCLImage",
true)))
398 validate(CLAccessor(_target), _reference, rel_tolerance_f16, 0.f, abs_tolerance_f16);
415 make("width", { 33
U } ),
416 height_values_precommit),
417 channel_values_precommit),
418 batch_values_precommit),
419 kernel_sz_values_precommit),
420 depth_multiplier_values),
423 padding_valid_values),
428 make(
"ExportToCLImage",
false)))
436 make(
"width", { 53
U } ),
437 height_values_nightly),
438 channel_values_nightly),
439 batch_values_nightly),
440 kernel_sz_values_nightly),
441 depth_multiplier_values),
444 padding_valid_values_nightly),
449 make(
"ExportToCLImage",
false)))
455 TEST_SUITE(DepthMultiplierMultipleOfOutputChannels)
458 make("width", { 33
U } ),
459 height_values_precommit),
460 channel_values_precommit),
461 batch_values_precommit),
462 kernel_sz_values_precommit),
463 make(
"depth_multiplier", 2)),
466 padding_valid_values),
471 make(
"ExportToCLImage",
false)))
480 make("width", { 33
U } ),
481 height_values_precommit),
482 channel_values_precommit),
483 batch_values_precommit),
484 kernel_sz_values_precommit),
485 make(
"depth_multiplier", 4)),
488 padding_valid_values),
493 make(
"ExportToCLImage",
true)))
514 make("width", { 33
U } ),
515 height_values_precommit),
516 channel_values_precommit),
517 batch_values_precommit),
518 kernel_sz_values_precommit),
519 depth_multiplier_values),
522 padding_valid_values),
527 make(
"ExportToCLImage",
false)))
535 make(
"width", { 53
U } ),
536 height_values_nightly),
537 channel_values_nightly),
538 batch_values_nightly),
539 kernel_sz_values_nightly),
540 depth_multiplier_values),
543 padding_valid_values_nightly),
548 make(
"ExportToCLImage",
false)))
551 validate(CLAccessor(_target), _reference, rel_tolerance_f16, 0.f, abs_tolerance_f16);
554 TEST_SUITE(DepthMultiplierMultipleOfOutputChannels)
557 make("width", { 33
U } ),
558 height_values_precommit),
559 channel_values_precommit),
560 batch_values_precommit),
561 kernel_sz_values_precommit),
562 make(
"depth_multiplier", 2)),
565 padding_valid_values),
570 make(
"ExportToCLImage",
false)))
573 validate(CLAccessor(_target), _reference, rel_tolerance_f16, 0.f, abs_tolerance_f16);
579 make("width", { 33
U } ),
580 height_values_precommit),
581 channel_values_precommit),
582 batch_values_precommit),
583 kernel_sz_values_precommit),
584 make(
"depth_multiplier", 4)),
587 padding_valid_values),
592 make(
"ExportToCLImage",
true)))
598 validate(CLAccessor(_target), _reference, rel_tolerance_f16, 0.f, abs_tolerance_f16);