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
cbd57be6
Commit
cbd57be6
authored
Dec 12, 2015
by
Davis King
Browse files
Made test_layers() a little more robust.
parent
9065f08c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
2 deletions
+10
-2
dlib/dnn/core.h
dlib/dnn/core.h
+10
-2
No files found.
dlib/dnn/core.h
View file @
cbd57be6
...
@@ -2016,7 +2016,11 @@ namespace dlib
...
@@ -2016,7 +2016,11 @@ namespace dlib
// compare it to the one output by the layer and make sure they match.
// compare it to the one output by the layer and make sure they match.
double
reference_derivative
=
(
dot
(
out2
,
input_grad
)
-
dot
(
out3
,
input_grad
))
/
(
2
*
eps
);
double
reference_derivative
=
(
dot
(
out2
,
input_grad
)
-
dot
(
out3
,
input_grad
))
/
(
2
*
eps
);
double
output_derivative
=
params_grad
.
host
()[
i
];
double
output_derivative
=
params_grad
.
host
()[
i
];
double
relative_error
=
(
reference_derivative
-
output_derivative
)
/
(
reference_derivative
+
1e-100
);
double
relative_error
;
if
(
reference_derivative
!=
0
)
relative_error
=
(
reference_derivative
-
output_derivative
)
/
(
reference_derivative
);
else
relative_error
=
(
reference_derivative
-
output_derivative
);
double
absolute_error
=
(
reference_derivative
-
output_derivative
);
double
absolute_error
=
(
reference_derivative
-
output_derivative
);
rs_params
.
add
(
std
::
abs
(
relative_error
));
rs_params
.
add
(
std
::
abs
(
relative_error
));
if
(
std
::
abs
(
relative_error
)
>
0.05
&&
std
::
abs
(
absolute_error
)
>
0.006
)
if
(
std
::
abs
(
relative_error
)
>
0.05
&&
std
::
abs
(
absolute_error
)
>
0.006
)
...
@@ -2049,7 +2053,11 @@ namespace dlib
...
@@ -2049,7 +2053,11 @@ namespace dlib
double
output_derivative
=
subnetwork
.
get_gradient_input_element
(
i
);
double
output_derivative
=
subnetwork
.
get_gradient_input_element
(
i
);
if
(
!
impl
::
is_inplace_layer
(
l
,
subnetwork
))
if
(
!
impl
::
is_inplace_layer
(
l
,
subnetwork
))
output_derivative
-=
initial_gradient_input
[
i
];
output_derivative
-=
initial_gradient_input
[
i
];
double
relative_error
=
(
reference_derivative
-
output_derivative
)
/
(
reference_derivative
+
1e-100
);
double
relative_error
;
if
(
reference_derivative
!=
0
)
relative_error
=
(
reference_derivative
-
output_derivative
)
/
(
reference_derivative
);
else
relative_error
=
(
reference_derivative
-
output_derivative
);
double
absolute_error
=
(
reference_derivative
-
output_derivative
);
double
absolute_error
=
(
reference_derivative
-
output_derivative
);
rs_data
.
add
(
std
::
abs
(
relative_error
));
rs_data
.
add
(
std
::
abs
(
relative_error
));
if
(
std
::
abs
(
relative_error
)
>
0.05
&&
std
::
abs
(
absolute_error
)
>
0.006
)
if
(
std
::
abs
(
relative_error
)
>
0.05
&&
std
::
abs
(
absolute_error
)
>
0.006
)
...
...
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