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

Function test_copy_tensor_cpu

dlib/test/dnn.cpp:2757–2807  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2755 return *p;
2756 }
2757 void test_copy_tensor_cpu()
2758 {
2759 using namespace dlib::tt;
2760 print_spinner();
2761 resizable_tensor dest(10, 9, 7, 15);
2762 resizable_tensor src1(10, 3, 7, 15);
2763 resizable_tensor src2(10, 3, 7, 15);
2764 resizable_tensor src3(10, 9, 7, 15);
2765 tt::tensor_rand rnd;
2766 rnd.fill_gaussian(dest);
2767 rnd.fill_gaussian(src1);
2768 rnd.fill_gaussian(src2);
2769 rnd.fill_gaussian(src3);
2770
2771 cpu::copy_tensor(false, dest, 0, src1, 0, src1.k()); //full copy src1->dest
2772 cpu::copy_tensor(false, dest, src1.k(), src2, 0, src2.k()); //full copy src2->dest with offset of src1
2773 cpu::copy_tensor(false, dest, src1.k() + src2.k(), src3, 3, 3); //partial copy src3 into the rest place of dest
2774
2775
2776 for (long i = 0; i < dest.num_samples(); ++i)
2777 {
2778 for (long k = 0; k < dest.k(); ++k)
2779 {
2780 for (long r = 0; r < dest.nr(); ++r)
2781 {
2782 for (long c = 0; c < dest.nc(); ++c)
2783 {
2784 float dest_value = tensor_read_cpu(dest, i, k, r, c);
2785 // first part is from src1
2786 if (k < src1.k())
2787 {
2788 float src_value = tensor_read_cpu(src1, i, k, r, c);
2789 DLIB_TEST(src_value == dest_value);
2790 }
2791 // second part is from src2
2792 else if (k < src1.k() + src2.k())
2793 {
2794 float src_value = tensor_read_cpu(src2, i, k - src1.k(), r, c);
2795 DLIB_TEST(src_value == dest_value);
2796 }
2797 // third part is from src3
2798 else
2799 {
2800 float src_value = tensor_read_cpu(src3, i, k - src1.k() - src2.k() + 3, r, c);
2801 DLIB_TEST(src_value == dest_value);
2802 }
2803 }
2804 }
2805 }
2806 }
2807 }
2808 void test_copy_tensor_add_to_cpu()
2809 {
2810 using namespace dlib::tt;

Callers 1

run_testsMethod · 0.85

Calls 7

print_spinnerFunction · 0.85
tensor_read_cpuFunction · 0.85
copy_tensorFunction · 0.50
kMethod · 0.45
num_samplesMethod · 0.45
nrMethod · 0.45
ncMethod · 0.45

Tested by

no test coverage detected