Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
908bf935
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,发现更多精彩内容 >>
提交
908bf935
编写于
4月 18, 2020
作者:
D
Dmitry Kurtaev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Flexible inputs for OpenVINO IR models
上级
e59e978f
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
62 addition
and
0 deletion
+62
-0
modules/dnn/src/dnn.cpp
modules/dnn/src/dnn.cpp
+2
-0
modules/dnn/src/ie_ngraph.cpp
modules/dnn/src/ie_ngraph.cpp
+7
-0
modules/dnn/src/ie_ngraph.hpp
modules/dnn/src/ie_ngraph.hpp
+2
-0
modules/dnn/src/op_inf_engine.cpp
modules/dnn/src/op_inf_engine.cpp
+7
-0
modules/dnn/src/op_inf_engine.hpp
modules/dnn/src/op_inf_engine.hpp
+2
-0
modules/dnn/test/test_misc.cpp
modules/dnn/test/test_misc.cpp
+42
-0
未找到文件。
modules/dnn/src/dnn.cpp
浏览文件 @
908bf935
...
...
@@ -1629,6 +1629,7 @@ struct Net::Impl
Ptr
<
InfEngineBackendNode
>
ieNode
=
node
.
dynamicCast
<
InfEngineBackendNode
>
();
CV_Assert
(
!
ieNode
.
empty
());
ieNode
->
net
->
reset
();
for
(
it
=
layers
.
begin
();
it
!=
layers
.
end
();
++
it
)
{
...
...
@@ -1930,6 +1931,7 @@ struct Net::Impl
Ptr
<
InfEngineNgraphNode
>
ieNode
=
node
.
dynamicCast
<
InfEngineNgraphNode
>
();
CV_Assert
(
!
ieNode
.
empty
());
ieNode
->
net
->
reset
();
for
(
it
=
layers
.
begin
();
it
!=
layers
.
end
();
++
it
)
{
...
...
modules/dnn/src/ie_ngraph.cpp
浏览文件 @
908bf935
...
...
@@ -780,6 +780,13 @@ void forwardNgraph(const std::vector<Ptr<BackendWrapper> >& outBlobsWrappers,
ieNode
->
net
->
forward
(
outBlobsWrappers
,
isAsync
);
}
void
InfEngineNgraphNet
::
reset
()
{
allBlobs
.
clear
();
infRequests
.
clear
();
isInit
=
false
;
}
void
InfEngineNgraphNet
::
addBlobs
(
const
std
::
vector
<
cv
::
Ptr
<
BackendWrapper
>
>&
ptrs
)
{
auto
wrappers
=
ngraphWrappers
(
ptrs
);
...
...
modules/dnn/src/ie_ngraph.hpp
浏览文件 @
908bf935
...
...
@@ -52,6 +52,8 @@ public:
void
createNet
(
Target
targetId
);
void
setNodePtr
(
std
::
shared_ptr
<
ngraph
::
Node
>*
ptr
);
void
reset
();
private:
void
release
();
int
getNumComponents
();
...
...
modules/dnn/src/op_inf_engine.cpp
浏览文件 @
908bf935
...
...
@@ -891,6 +891,13 @@ bool InfEngineBackendNet::isInitialized()
#endif
}
void
InfEngineBackendNet
::
reset
()
{
allBlobs
.
clear
();
infRequests
.
clear
();
isInit
=
false
;
}
void
InfEngineBackendNet
::
addBlobs
(
const
std
::
vector
<
cv
::
Ptr
<
BackendWrapper
>
>&
ptrs
)
{
auto
wrappers
=
infEngineWrappers
(
ptrs
);
...
...
modules/dnn/src/op_inf_engine.hpp
浏览文件 @
908bf935
...
...
@@ -112,6 +112,8 @@ public:
void
addBlobs
(
const
std
::
vector
<
cv
::
Ptr
<
BackendWrapper
>
>&
ptrs
);
void
reset
();
private:
InferenceEngine
::
Builder
::
Network
netBuilder
;
...
...
modules/dnn/test/test_misc.cpp
浏览文件 @
908bf935
...
...
@@ -760,6 +760,48 @@ TEST_P(Test_Model_Optimizer, readFromBuffer)
normAssert
(
ref
,
actual
,
""
,
0
,
0
);
}
TEST_P
(
Test_Model_Optimizer
,
flexible_inputs
)
{
const
Backend
backendId
=
get
<
0
>
(
GetParam
());
const
Target
targetId
=
get
<
1
>
(
GetParam
());
const
std
::
string
&
model
=
findDataFile
(
"dnn/layers/layer_convolution_fp16.bin"
);
const
std
::
string
&
proto
=
findDataFile
(
"dnn/layers/layer_convolution_fp16.xml"
);
if
(
backendId
==
DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019
)
setInferenceEngineBackendType
(
CV_DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_API
);
else
if
(
backendId
==
DNN_BACKEND_INFERENCE_ENGINE_NGRAPH
)
setInferenceEngineBackendType
(
CV_DNN_BACKEND_INFERENCE_ENGINE_NGRAPH
);
else
FAIL
()
<<
"Unknown backendId"
;
Net
net0
=
readNet
(
model
,
proto
);
net0
.
setPreferableTarget
(
targetId
);
Net
net1
=
readNet
(
model
,
proto
);
net1
.
setPreferableTarget
(
targetId
);
// Generate inputs.
int
blobSize0
[]
=
{
2
,
6
,
75
,
113
};
Mat
input0
(
4
,
&
blobSize0
[
0
],
CV_32F
);
randu
(
input0
,
0
,
255
);
net0
.
setInput
(
input0
);
Mat
ref
=
net0
.
forward
().
clone
();
int
blobSize1
[]
=
{
1
,
6
,
10
,
9
};
Mat
input1
(
4
,
&
blobSize1
[
0
],
CV_32F
);
randu
(
input1
,
0
,
255
);
net1
.
setInput
(
input1
);
Mat
out
=
net1
.
forward
();
EXPECT_NE
(
out
.
size
,
ref
.
size
);
net1
.
setInput
(
input0
);
out
=
net1
.
forward
();
normAssert
(
ref
,
out
,
0
,
0
);
}
INSTANTIATE_TEST_CASE_P
(
/**/
,
Test_Model_Optimizer
,
dnnBackendsAndTargetsIE
()
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录