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

Function test_more_ops2

dlib/test/dnn.cpp:2011–2111  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2009
2010
2011 void test_more_ops2()
2012 {
2013 dlib::rand rnd;
2014 tt::tensor_rand trand;
2015
2016 for (int iter = 0; iter < 100; ++iter)
2017 {
2018 print_spinner();
2019 resizable_tensor dest1, dest2, src1, src2;
2020 src1.set_size(rnd.get_random_32bit_number()%30+1,
2021 rnd.get_random_32bit_number()%30+1,
2022 rnd.get_random_32bit_number()%30+1,
2023 rnd.get_random_32bit_number()%30+1);
2024 dest1.copy_size(src1);
2025 dest2.copy_size(src1);
2026 src2.set_size(1,src1.k(),1,1);
2027
2028 trand.fill_uniform(dest1);
2029 trand.fill_uniform(dest2);
2030 trand.fill_uniform(src1);
2031 trand.fill_uniform(src2);
2032
2033 cpu::multiply_conv(false, dest1, src1, src2);
2034 cuda::multiply_conv(false, dest2, src1, src2);
2035 DLIB_TEST(max(abs(mat(dest1)-mat(dest2))) < 1e-5);
2036 cpu::multiply_conv(true, dest1, src1, src2);
2037 cuda::multiply_conv(true, dest2, src1, src2);
2038 DLIB_TEST(max(abs(mat(dest1)-mat(dest2))) < 1e-5);
2039
2040
2041 // now try it using the other mode of multiply_conv
2042 src2.copy_size(src1);
2043 dest1.set_size(1,src1.k(),1,1);
2044 dest2.set_size(1,src1.k(),1,1);
2045 trand.fill_uniform(dest1);
2046 trand.fill_uniform(dest2);
2047 trand.fill_uniform(src1);
2048 trand.fill_uniform(src2);
2049 cpu::multiply_conv(false, dest1, src1, src2);
2050 cuda::multiply_conv(false, dest2, src1, src2);
2051 float scale = max(abs(mat(dest1)));
2052 float scalem = mean(abs(mat(dest1)));
2053 DLIB_TEST_MSG(max(abs(mat(dest1)-mat(dest2)))/scale < 1e-4 , max(abs(mat(dest1)-mat(dest2)))/scale);
2054 DLIB_TEST_MSG(mean(abs(mat(dest1)-mat(dest2)))/scalem < 1e-5 , mean(abs(mat(dest1)-mat(dest2)))/scalem);
2055 matrix<float> prevd2 = mat(dest2);
2056 cpu::multiply_conv(false, dest1, src1, src2);
2057 cuda::multiply_conv(true, dest2, src1, src2);
2058 scale = max(abs(mat(dest1)));
2059 scalem = mean(abs(mat(dest1)));
2060 DLIB_TEST_MSG(max(abs(mat(dest1)-mat(dest2)+prevd2))/scale < 1e-4 , max(abs(mat(dest1)-mat(dest2)+prevd2))/scale);
2061 DLIB_TEST_MSG(mean(abs(mat(dest1)-mat(dest2)+prevd2))/scalem < 1e-5 , mean(abs(mat(dest1)-mat(dest2)+prevd2))/scalem);
2062 }
2063
2064 for (int iter = 0; iter < 100; ++iter)
2065 {
2066 print_spinner();
2067 resizable_tensor dest1, dest2, src, A, B;
2068 src.set_size(rnd.get_random_32bit_number()%30+1,

Callers 1

run_testsMethod · 0.85

Calls 12

print_spinnerFunction · 0.85
absFunction · 0.85
meanFunction · 0.85
copy_sizeMethod · 0.80
multiply_convFunction · 0.50
maxFunction · 0.50
matFunction · 0.50
affine_transform_convFunction · 0.50
set_sizeMethod · 0.45
kMethod · 0.45

Tested by

no test coverage detected