Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
bbc64799
Commit
bbc64799
authored
Mar 21, 2020
by
Guo, Yejun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dnn-layer-mathbinary-test: add unit test for subtraction
Signed-off-by:
Guo, Yejun
<
yejun.guo@intel.com
>
parent
ffa15616
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
180 additions
and
0 deletions
+180
-0
.gitignore
tests/dnn/.gitignore
+1
-0
Makefile
tests/dnn/Makefile
+1
-0
dnn-layer-mathbinary-test.c
tests/dnn/dnn-layer-mathbinary-test.c
+173
-0
dnn.mak
tests/fate/dnn.mak
+5
-0
No files found.
tests/dnn/.gitignore
View file @
bbc64799
...
...
@@ -2,3 +2,4 @@
/dnn-layer-depth2space-test
/dnn-layer-maximum-test
/dnn-layer-pad-test
/dnn-layer-mathbinary-test
tests/dnn/Makefile
View file @
bbc64799
DNNTESTPROGS
+=
dnn-layer-pad
DNNTESTPROGS
+=
dnn-layer-conv2d
DNNTESTPROGS
+=
dnn-layer-depth2space
DNNTESTPROGS
+=
dnn-layer-mathbinary
DNNTESTPROGS
+=
dnn-layer-maximum
DNNTESTOBJS
:=
$
(
DNNTESTOBJS:%
=
$(DNNTESTSDIR)
%
)
$
(
DNNTESTPROGS:%
=
$(DNNTESTSDIR)
/%-test.o
)
...
...
tests/dnn/dnn-layer-mathbinary-test.c
0 → 100644
View file @
bbc64799
/*
* Copyright (c) 2020
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <stdio.h>
#include <string.h>
#include <math.h>
#include "libavfilter/dnn/dnn_backend_native_layer_mathbinary.h"
#define EPSON 0.00001
static
int
test_sub_broadcast_input0
(
void
)
{
DnnLayerMathBinaryParams
params
;
DnnOperand
operands
[
2
];
int32_t
input_indexes
[
1
];
float
input
[
1
*
1
*
2
*
3
]
=
{
-
3
,
2
.
5
,
2
,
-
2
.
1
,
7
.
8
,
100
};
float
*
output
;
params
.
bin_op
=
DMBO_SUB
;
params
.
input0_broadcast
=
1
;
params
.
input1_broadcast
=
0
;
params
.
v
=
7
.
28
;
operands
[
0
].
data
=
input
;
operands
[
0
].
dims
[
0
]
=
1
;
operands
[
0
].
dims
[
1
]
=
1
;
operands
[
0
].
dims
[
2
]
=
2
;
operands
[
0
].
dims
[
3
]
=
3
;
operands
[
1
].
data
=
NULL
;
input_indexes
[
0
]
=
0
;
dnn_execute_layer_math_binary
(
operands
,
input_indexes
,
1
,
&
params
);
output
=
operands
[
1
].
data
;
for
(
int
i
=
0
;
i
<
sizeof
(
input
)
/
sizeof
(
float
);
i
++
)
{
float
expected_output
=
params
.
v
-
input
[
i
];
if
(
fabs
(
output
[
i
]
-
expected_output
)
>
EPSON
)
{
printf
(
"at index %d, output: %f, expected_output: %f
\n
"
,
i
,
output
[
i
],
expected_output
);
av_freep
(
&
output
);
return
1
;
}
}
av_freep
(
&
output
);
return
0
;
}
static
int
test_sub_broadcast_input1
(
void
)
{
DnnLayerMathBinaryParams
params
;
DnnOperand
operands
[
2
];
int32_t
input_indexes
[
1
];
float
input
[
1
*
1
*
2
*
3
]
=
{
-
3
,
2
.
5
,
2
,
-
2
.
1
,
7
.
8
,
100
};
float
*
output
;
params
.
bin_op
=
DMBO_SUB
;
params
.
input0_broadcast
=
0
;
params
.
input1_broadcast
=
1
;
params
.
v
=
7
.
28
;
operands
[
0
].
data
=
input
;
operands
[
0
].
dims
[
0
]
=
1
;
operands
[
0
].
dims
[
1
]
=
1
;
operands
[
0
].
dims
[
2
]
=
2
;
operands
[
0
].
dims
[
3
]
=
3
;
operands
[
1
].
data
=
NULL
;
input_indexes
[
0
]
=
0
;
dnn_execute_layer_math_binary
(
operands
,
input_indexes
,
1
,
&
params
);
output
=
operands
[
1
].
data
;
for
(
int
i
=
0
;
i
<
sizeof
(
input
)
/
sizeof
(
float
);
i
++
)
{
float
expected_output
=
input
[
i
]
-
params
.
v
;
if
(
fabs
(
output
[
i
]
-
expected_output
)
>
EPSON
)
{
printf
(
"at index %d, output: %f, expected_output: %f
\n
"
,
i
,
output
[
i
],
expected_output
);
av_freep
(
&
output
);
return
1
;
}
}
av_freep
(
&
output
);
return
0
;
}
static
int
test_sub_no_broadcast
(
void
)
{
DnnLayerMathBinaryParams
params
;
DnnOperand
operands
[
3
];
int32_t
input_indexes
[
2
];
float
input0
[
1
*
1
*
2
*
3
]
=
{
-
3
,
2
.
5
,
2
,
-
2
.
1
,
7
.
8
,
100
};
float
input1
[
1
*
1
*
2
*
3
]
=
{
-
1
,
2
,
3
,
-
21
,
8
,
10
.
0
};
float
*
output
;
params
.
bin_op
=
DMBO_SUB
;
params
.
input0_broadcast
=
0
;
params
.
input1_broadcast
=
0
;
operands
[
0
].
data
=
input0
;
operands
[
0
].
dims
[
0
]
=
1
;
operands
[
0
].
dims
[
1
]
=
1
;
operands
[
0
].
dims
[
2
]
=
2
;
operands
[
0
].
dims
[
3
]
=
3
;
operands
[
1
].
data
=
input1
;
operands
[
1
].
dims
[
0
]
=
1
;
operands
[
1
].
dims
[
1
]
=
1
;
operands
[
1
].
dims
[
2
]
=
2
;
operands
[
1
].
dims
[
3
]
=
3
;
operands
[
2
].
data
=
NULL
;
input_indexes
[
0
]
=
0
;
input_indexes
[
1
]
=
1
;
dnn_execute_layer_math_binary
(
operands
,
input_indexes
,
2
,
&
params
);
output
=
operands
[
2
].
data
;
for
(
int
i
=
0
;
i
<
sizeof
(
input0
)
/
sizeof
(
float
);
i
++
)
{
float
expected_output
=
input0
[
i
]
-
input1
[
i
];
if
(
fabs
(
output
[
i
]
-
expected_output
)
>
EPSON
)
{
printf
(
"at index %d, output: %f, expected_output: %f
\n
"
,
i
,
output
[
i
],
expected_output
);
av_freep
(
&
output
);
return
1
;
}
}
av_freep
(
&
output
);
return
0
;
}
static
int
test_sub
(
void
)
{
if
(
test_sub_broadcast_input0
())
return
1
;
if
(
test_sub_broadcast_input1
())
return
1
;
if
(
test_sub_no_broadcast
())
return
1
;
return
0
;
}
int
main
(
int
argc
,
char
**
argv
)
{
if
(
test_sub
())
return
1
;
return
0
;
}
tests/fate/dnn.mak
View file @
bbc64799
...
...
@@ -13,6 +13,11 @@ fate-dnn-layer-depth2space: $(DNNTESTSDIR)/dnn-layer-depth2space-test$(EXESUF)
fate-dnn-layer-depth2space: CMD = run $(DNNTESTSDIR)/dnn-layer-depth2space-test$(EXESUF)
fate-dnn-layer-depth2space: CMP = null
FATE_DNN += fate-dnn-layer-mathbinary
fate-dnn-layer-mathbinary: $(DNNTESTSDIR)/dnn-layer-mathbinary-test$(EXESUF)
fate-dnn-layer-mathbinary: CMD = run $(DNNTESTSDIR)/dnn-layer-mathbinary-test$(EXESUF)
fate-dnn-layer-mathbinary: CMP = null
FATE_DNN += fate-dnn-layer-maximum
fate-dnn-layer-maximum: $(DNNTESTSDIR)/dnn-layer-maximum-test$(EXESUF)
fate-dnn-layer-maximum: CMD = run $(DNNTESTSDIR)/dnn-layer-maximum-test$(EXESUF)
...
...
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