Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
58dc3979
O
Opencv
项目概览
Greenplum
/
Opencv
11 个月 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
58dc3979
编写于
11月 27, 2021
作者:
A
Alexander Alekhin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dnn(test): add two_inputs test with FP32/U8 data types
- remove similar test from IE scope under HAVE_INF_ENGINE
上级
b55d8f46
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
60 addition
and
51 deletion
+60
-51
modules/dnn/test/test_layers.cpp
modules/dnn/test/test_layers.cpp
+0
-51
modules/dnn/test/test_misc.cpp
modules/dnn/test/test_misc.cpp
+60
-0
未找到文件。
modules/dnn/test/test_layers.cpp
浏览文件 @
58dc3979
...
...
@@ -1380,57 +1380,6 @@ INSTANTIATE_TEST_CASE_P(/*nothing*/, Test_DLDT_two_inputs_3dim, Combine(
testing
::
ValuesIn
(
list_sizes
)
));
typedef
testing
::
TestWithParam
<
tuple
<
int
,
int
,
tuple
<
Backend
,
Target
>
>
>
Test_DLDT_two_inputs
;
TEST_P
(
Test_DLDT_two_inputs
,
as_backend
)
{
static
const
float
kScale
=
0.5
f
;
static
const
float
kScaleInv
=
1.0
f
/
kScale
;
Backend
backendId
=
get
<
0
>
(
get
<
2
>
(
GetParam
()));
Target
targetId
=
get
<
1
>
(
get
<
2
>
(
GetParam
()));
Net
net
;
LayerParams
lp
;
lp
.
type
=
"Eltwise"
;
lp
.
name
=
"testLayer"
;
lp
.
set
(
"operation"
,
"sum"
);
int
eltwiseId
=
net
.
addLayerToPrev
(
lp
.
name
,
lp
.
type
,
lp
);
// connect to a first input
net
.
connect
(
0
,
1
,
eltwiseId
,
1
);
// connect to a second input
int
inpSize
[]
=
{
1
,
2
,
3
,
4
};
Mat
firstInp
(
4
,
&
inpSize
[
0
],
get
<
0
>
(
GetParam
()));
Mat
secondInp
(
4
,
&
inpSize
[
0
],
get
<
1
>
(
GetParam
()));
randu
(
firstInp
,
0
,
255
);
randu
(
secondInp
,
0
,
255
);
net
.
setInputsNames
({
"data"
,
"second_input"
});
net
.
setInput
(
firstInp
,
"data"
,
kScale
);
net
.
setInput
(
secondInp
,
"second_input"
,
kScaleInv
);
net
.
setPreferableBackend
(
backendId
);
net
.
setPreferableTarget
(
targetId
);
Mat
out
=
net
.
forward
();
Mat
ref
;
addWeighted
(
firstInp
,
kScale
,
secondInp
,
kScaleInv
,
0
,
ref
,
CV_32F
);
// Output values are in range [0, 637.5].
double
l1
=
(
targetId
==
DNN_TARGET_OPENCL_FP16
||
targetId
==
DNN_TARGET_MYRIAD
)
?
0.06
:
1e-6
;
double
lInf
=
(
targetId
==
DNN_TARGET_OPENCL_FP16
||
targetId
==
DNN_TARGET_MYRIAD
)
?
0.3
:
1e-5
;
normAssert
(
out
,
ref
,
""
,
l1
,
lInf
);
if
(
cvtest
::
debugLevel
>
0
||
HasFailure
())
{
std
::
cout
<<
"input1 scale="
<<
kScale
<<
" input2 scale="
<<
kScaleInv
<<
std
::
endl
;
std
::
cout
<<
"input1: "
<<
firstInp
.
size
<<
" "
<<
firstInp
.
reshape
(
1
,
1
)
<<
std
::
endl
;
std
::
cout
<<
"input2: "
<<
secondInp
.
size
<<
" "
<<
secondInp
.
reshape
(
1
,
1
)
<<
std
::
endl
;
std
::
cout
<<
"ref: "
<<
ref
.
reshape
(
1
,
1
)
<<
std
::
endl
;
std
::
cout
<<
"out: "
<<
out
.
reshape
(
1
,
1
)
<<
std
::
endl
;
}
}
INSTANTIATE_TEST_CASE_P
(
/*nothing*/
,
Test_DLDT_two_inputs
,
Combine
(
Values
(
CV_8U
,
CV_32F
),
Values
(
CV_8U
,
CV_32F
),
dnnBackendsAndTargets
()
));
class
UnsupportedLayer
:
public
Layer
{
public:
...
...
modules/dnn/test/test_misc.cpp
浏览文件 @
58dc3979
...
...
@@ -828,4 +828,64 @@ INSTANTIATE_TEST_CASE_P(/**/, Test_Model_Optimizer,
#endif // HAVE_INF_ENGINE
typedef
testing
::
TestWithParam
<
tuple
<
MatDepth
,
MatDepth
,
tuple
<
Backend
,
Target
>
>
>
Test_two_inputs
;
TEST_P
(
Test_two_inputs
,
basic
)
{
static
const
float
kScale
=
0.5
f
;
static
const
float
kScaleInv
=
1.0
f
/
kScale
;
Backend
backendId
=
get
<
0
>
(
get
<
2
>
(
GetParam
()));
Target
targetId
=
get
<
1
>
(
get
<
2
>
(
GetParam
()));
Net
net
;
LayerParams
lp
;
lp
.
type
=
"Eltwise"
;
lp
.
name
=
"testLayer"
;
lp
.
set
(
"operation"
,
"sum"
);
int
eltwiseId
=
net
.
addLayerToPrev
(
lp
.
name
,
lp
.
type
,
lp
);
// connect to a first input
net
.
connect
(
0
,
1
,
eltwiseId
,
1
);
// connect to a second input
int
inpSize
[]
=
{
1
,
2
,
3
,
4
};
Mat
firstInp
(
4
,
&
inpSize
[
0
],
get
<
0
>
(
GetParam
()));
Mat
secondInp
(
4
,
&
inpSize
[
0
],
get
<
1
>
(
GetParam
()));
randu
(
firstInp
,
0
,
100
);
randu
(
secondInp
,
0
,
100
);
#ifndef CV_CXX11
std
::
vector
<
String
>
input_names
;
input_names
.
push_back
(
"data"
);
input_names
.
push_back
(
"second_input"
);
net
.
setInputsNames
(
input_names
);
#else
net
.
setInputsNames
({
"data"
,
"second_input"
});
#endif
net
.
setInput
(
firstInp
,
"data"
,
kScale
);
net
.
setInput
(
secondInp
,
"second_input"
,
kScaleInv
);
net
.
setPreferableBackend
(
backendId
);
net
.
setPreferableTarget
(
targetId
);
Mat
out
=
net
.
forward
();
Mat
ref
;
addWeighted
(
firstInp
,
kScale
,
secondInp
,
kScaleInv
,
0
,
ref
,
CV_32F
);
double
l1
=
(
targetId
==
DNN_TARGET_OPENCL_FP16
||
targetId
==
DNN_TARGET_MYRIAD
)
?
0.06
:
1e-6
;
double
lInf
=
(
targetId
==
DNN_TARGET_OPENCL_FP16
||
targetId
==
DNN_TARGET_MYRIAD
)
?
0.3
:
1e-5
;
normAssert
(
out
,
ref
,
""
,
l1
,
lInf
);
if
(
cvtest
::
debugLevel
>
0
||
HasFailure
())
{
std
::
cout
<<
"input1 scale="
<<
kScale
<<
" input2 scale="
<<
kScaleInv
<<
std
::
endl
;
std
::
cout
<<
"input1: "
<<
firstInp
.
size
<<
" "
<<
firstInp
.
reshape
(
1
,
1
)
<<
std
::
endl
;
std
::
cout
<<
"input2: "
<<
secondInp
.
size
<<
" "
<<
secondInp
.
reshape
(
1
,
1
)
<<
std
::
endl
;
std
::
cout
<<
"ref: "
<<
ref
.
reshape
(
1
,
1
)
<<
std
::
endl
;
std
::
cout
<<
"out: "
<<
out
.
reshape
(
1
,
1
)
<<
std
::
endl
;
}
}
INSTANTIATE_TEST_CASE_P
(
/*nothing*/
,
Test_two_inputs
,
Combine
(
Values
(
CV_32F
,
CV_8U
),
Values
(
CV_32F
,
CV_8U
),
dnnBackendsAndTargets
()
));
}}
// namespace
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录