Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
dlib
Commits
3e44d299
Commit
3e44d299
authored
Nov 21, 2015
by
Davis King
Browse files
Added cuda tests
parent
e1e4d6df
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
84 additions
and
0 deletions
+84
-0
dlib/test/dnn.cpp
dlib/test/dnn.cpp
+84
-0
No files found.
dlib/test/dnn.cpp
View file @
3e44d299
...
@@ -347,6 +347,84 @@ namespace
...
@@ -347,6 +347,84 @@ namespace
DLIB_TEST
(
max
(
abs
(
truth5
-
mat
(
B
)))
<
1e-5
);
DLIB_TEST
(
max
(
abs
(
truth5
-
mat
(
B
)))
<
1e-5
);
}
}
// ----------------------------------------------------------------------------------------
void
test_more_ops
(
const
long
nr
,
const
long
nc
)
{
print_spinner
();
#ifdef DLIB_USE_CUDA
// We are going to make sure that the CPU implementation of these things matches
// the CUDA implementation.
tensor_rand
rnd
;
resizable_tensor
dest
(
nr
,
nc
),
src
(
nr
,
nc
),
dest2
,
src2
;
resizable_tensor
srcb
(
nr
,
nc
),
srcc
(
nr
,
nc
),
srcb2
,
srcc2
;
rnd
.
fill_uniform
(
dest
);
rnd
.
fill_uniform
(
src
);
dest2
=
dest
;
src2
=
src
;
cuda
::
multiply
(
dest
,
src
);
cpu
::
multiply
(
dest2
,
src2
);
DLIB_TEST
(
equal
(
mat
(
dest
),
mat
(
dest2
)));
rnd
.
fill_uniform
(
dest
);
rnd
.
fill_uniform
(
src
);
dest2
=
dest
;
src2
=
src
;
cuda
::
affine_transform
(
dest
,
src
,
2
,
3
);
cpu
::
affine_transform
(
dest2
,
src2
,
2
,
3
);
DLIB_TEST
(
equal
(
mat
(
dest
),
mat
(
dest2
)));
rnd
.
fill_uniform
(
dest
);
rnd
.
fill_uniform
(
src
);
rnd
.
fill_uniform
(
srcb
);
dest2
=
dest
;
src2
=
src
;
srcb2
=
srcb
;
cuda
::
affine_transform
(
dest
,
src
,
srcb
,
2
,
3
,
4
);
cpu
::
affine_transform
(
dest2
,
src2
,
srcb2
,
2
,
3
,
4
);
DLIB_TEST
(
equal
(
mat
(
dest
),
mat
(
dest2
)));
rnd
.
fill_uniform
(
dest
);
rnd
.
fill_uniform
(
src
);
rnd
.
fill_uniform
(
srcb
);
rnd
.
fill_uniform
(
srcc
);
dest2
=
dest
;
src2
=
src
;
srcb2
=
srcb
;
srcc2
=
srcc
;
cuda
::
affine_transform
(
dest
,
src
,
srcb
,
srcc
,
2
,
3
,
4
,
5
);
cpu
::
affine_transform
(
dest2
,
src2
,
srcb2
,
srcc2
,
2
,
3
,
4
,
5
);
DLIB_TEST
(
equal
(
mat
(
dest
),
mat
(
dest2
)));
rnd
.
fill_uniform
(
dest
);
rnd
.
fill_uniform
(
src
);
rnd
.
fill_uniform
(
srcb
);
rnd
.
fill_uniform
(
srcc
);
dest2
=
dest
;
src2
=
src
;
srcb2
=
srcb
;
srcc2
=
srcc
;
cuda
::
affine_transform
(
dest
,
src
,
srcb
,
srcc
);
cpu
::
affine_transform
(
dest2
,
src2
,
srcb2
,
srcc2
);
DLIB_TEST
(
equal
(
mat
(
dest
),
mat
(
dest2
)));
// now exercise code path where the A/B tensors have num_samples()==1
srcb
.
set_size
(
1
,
nc
);
srcc
.
set_size
(
1
,
nc
);
rnd
.
fill_uniform
(
dest
);
rnd
.
fill_uniform
(
src
);
rnd
.
fill_uniform
(
srcb
);
rnd
.
fill_uniform
(
srcc
);
dest2
=
dest
;
src2
=
src
;
srcb2
=
srcb
;
srcc2
=
srcc
;
cuda
::
affine_transform
(
dest
,
src
,
srcb
,
srcc
);
cpu
::
affine_transform
(
dest2
,
src2
,
srcb2
,
srcc2
);
DLIB_TEST
(
equal
(
mat
(
dest
),
mat
(
dest2
)));
rnd
.
fill_uniform
(
src
);
src2
=
src
;
cuda
::
threshold
(
src
,
0.5
);
cpu
::
threshold
(
src2
,
0.5
);
DLIB_TEST
(
equal
(
mat
(
src
),
mat
(
src2
)));
#endif
}
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
class
dnn_tester
:
public
tester
class
dnn_tester
:
public
tester
...
@@ -361,6 +439,12 @@ namespace
...
@@ -361,6 +439,12 @@ namespace
void
perform_test
(
void
perform_test
(
)
)
{
{
test_more_ops
(
1
,
1
);
test_more_ops
(
3
,
4
);
test_more_ops
(
4
,
3
);
test_more_ops
(
4
,
1
);
test_more_ops
(
1
,
4
);
test_more_ops
(
10000
,
4
);
test_tanh
();
test_tanh
();
test_softmax
();
test_softmax
();
test_sigmoid
();
test_sigmoid
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment