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

Function compare_bn_conv_gpu_and_cpu

dlib/test/dnn.cpp:1958–2008  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1956 }
1957
1958 void compare_bn_conv_gpu_and_cpu()
1959 {
1960 print_spinner();
1961 resizable_tensor dest, dest2;
1962 resizable_tensor means, means2;
1963 resizable_tensor invstds, invstds2;
1964 resizable_tensor running_means, running_means2;
1965 resizable_tensor running_variances, running_variances2;
1966 resizable_tensor src(2,8,10,9);
1967 resizable_tensor gamma(1,8);
1968 resizable_tensor beta(1,8);
1969 gamma = 2;
1970 beta = 3;
1971 tt::tensor_rand rnd;
1972 rnd.fill_uniform(src);
1973
1974 cpu::batch_normalize_conv(DEFAULT_BATCH_NORM_EPS,dest,means,invstds,1,running_means,running_variances, src, gamma, beta);
1975 cuda::batch_normalize_conv(DEFAULT_BATCH_NORM_EPS,dest2,means2,invstds2,1,running_means2,running_variances2, src, gamma, beta);
1976
1977 dlog << LINFO << "dest error: "<< max(abs(mat(dest) -mat(dest2)));
1978 dlog << LINFO << "means error: "<< max(abs(mat(means) -mat(means2)));
1979 dlog << LINFO << "invstds error: "<< max(abs(mat(invstds) -mat(invstds2)));
1980 dlog << LINFO << "running_means error: "<< max(abs(mat(running_means) -mat(running_means2)));
1981 dlog << LINFO << "running_variances error: "<< max(abs(mat(running_variances) -mat(running_variances2)));
1982
1983 DLIB_TEST(max(abs(mat(dest) -mat(dest2))) < 1e-4);
1984 DLIB_TEST(max(abs(mat(means) -mat(means2))) < 1e-4);
1985 DLIB_TEST(max(abs(mat(invstds) -mat(invstds2))) < 1e-4);
1986 DLIB_TEST(max(abs(mat(running_means) -mat(running_means2))) < 1e-4);
1987 DLIB_TEST(max(abs(mat(running_variances) -mat(running_variances2))) < 1e-4);
1988
1989 resizable_tensor gradient_input;
1990 resizable_tensor src_grad, gamma_grad, beta_grad;
1991 resizable_tensor src_grad2, gamma_grad2, beta_grad2;
1992 gradient_input.copy_size(dest);
1993 src_grad.copy_size(src); src_grad = 0; src_grad2 = src_grad;
1994 gamma_grad.copy_size(gamma); gamma_grad = 0; gamma_grad2 = gamma_grad;
1995 beta_grad.copy_size(beta); beta_grad = 0; beta_grad2 = beta_grad;
1996 rnd.fill_uniform(gradient_input);
1997
1998
1999 cpu::batch_normalize_conv_gradient(DEFAULT_BATCH_NORM_EPS,gradient_input, means, invstds, src, gamma, src_grad, gamma_grad, beta_grad);
2000 cuda::batch_normalize_conv_gradient(DEFAULT_BATCH_NORM_EPS,gradient_input, means, invstds, src, gamma, src_grad2, gamma_grad2, beta_grad2);
2001
2002 dlog << LINFO << "src_grad error: " << max(abs(mat(src_grad)-mat(src_grad2)));
2003 dlog << LINFO << "gamma_grad error: " << max(abs(mat(gamma_grad)-mat(gamma_grad2)));
2004 dlog << LINFO << "beta_grad error: " << max(abs(mat(beta_grad)-mat(beta_grad2)));
2005 DLIB_TEST(max(abs(mat(src_grad)-mat(src_grad2))) < 1e-4);
2006 DLIB_TEST(max(abs(mat(gamma_grad)-mat(gamma_grad2))) < 1e-4);
2007 DLIB_TEST(max(abs(mat(beta_grad)-mat(beta_grad2))) < 1e-4);
2008 }
2009
2010
2011 void test_more_ops2()

Callers 1

run_testsMethod · 0.85

Calls 7

print_spinnerFunction · 0.85
absFunction · 0.85
copy_sizeMethod · 0.80
batch_normalize_convFunction · 0.50
maxFunction · 0.50
matFunction · 0.50

Tested by

no test coverage detected