MCPcopy Create free account
hub / github.com/davisking/dlib / test_conv

Function test_conv

dlib/test/dnn.cpp:1475–1581  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1473 }
1474
1475 void test_conv()
1476 {
1477 cuda::tensor_conv conv1;
1478 cpu::tensor_conv conv2;
1479
1480 dlib::rand prnd;
1481 for (int iter = 0; iter < 400; ++iter)
1482 {
1483 print_spinner();
1484
1485 resizable_tensor data(prnd.get_random_32bit_number()%5+1,
1486 prnd.get_random_32bit_number()%5+1,
1487 prnd.get_random_32bit_number()%25+1,
1488 prnd.get_random_32bit_number()%25+1
1489 );
1490 resizable_tensor filters(
1491 prnd.get_random_32bit_number()%5+1,
1492 data.k(),
1493 prnd.get_random_32bit_number()%6+1,
1494 prnd.get_random_32bit_number()%6+1
1495 );
1496
1497 tt::tensor_rand rnd;
1498 rnd.fill_uniform(data);
1499 rnd.fill_uniform(filters);
1500
1501
1502 resizable_tensor output1, output2;
1503
1504
1505 const int stride_y = prnd.get_random_32bit_number()%5+1;
1506 const int stride_x = prnd.get_random_32bit_number()%5+1;
1507 int padding_y = prnd.get_random_32bit_number()%(filters.nr()/2+1);
1508 int padding_x = prnd.get_random_32bit_number()%(filters.nc()/2+1);
1509 if (!(filters.nr() <= data.nr() + 2*padding_y))
1510 padding_y = (filters.nr()-data.nr()+1)/2;
1511 if (!(filters.nc() <= data.nc() + 2*padding_x))
1512 padding_x = (filters.nc()-data.nc()+1)/2;
1513 conv1.setup(data,filters,stride_y,stride_x,padding_y,padding_x);
1514 conv1(false, output1, data, filters);
1515 conv2.setup(data,filters,stride_y,stride_x,padding_y,padding_x);
1516 conv2(false, output2, data, filters);
1517 dlog << LINFO << "forward error: "<< max(abs(mat(output1)-mat(output2)));
1518 double eps = 1e-3 * max(abs(mat(output1)));
1519 DLIB_TEST_MSG(max(abs(mat(output1)-mat(output2))) < eps, max(abs(mat(output1)-mat(output2)))
1520 <<"\n\t padding_y: "<< padding_y
1521 <<"\n\t padding_x: "<< padding_x
1522 <<"\n\t eps: "<< eps
1523 );
1524
1525 conv1(true, output1, data, filters);
1526 conv2(true, output2, data, filters);
1527 dlog << LINFO << "forward error: "<< max(abs(mat(output1)-mat(output2)));
1528 eps = 1e-3 * max(abs(mat(output1)));
1529 DLIB_TEST_MSG(max(abs(mat(output1)-mat(output2))) < eps, max(abs(mat(output1)-mat(output2)))
1530 <<"\n\t padding_y: "<< padding_y
1531 <<"\n\t padding_x: "<< padding_x
1532 <<"\n\t eps: "<< eps

Callers 1

run_testsMethod · 0.70

Calls 12

print_spinnerFunction · 0.85
absFunction · 0.85
copy_sizeMethod · 0.80
maxFunction · 0.50
matFunction · 0.50
kMethod · 0.45
nrMethod · 0.45
ncMethod · 0.45
setupMethod · 0.45
get_gradient_for_dataMethod · 0.45

Tested by

no test coverage detected