Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Xiaomi
Mace
提交
2b13dd2c
Mace
项目概览
Xiaomi
/
Mace
通知
107
Star
40
Fork
27
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Mace
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
2b13dd2c
编写于
3月 07, 2018
作者:
L
liuqi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Model benchmark tool support multiple inputs or outputs.
上级
a2f173c2
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
9 deletion
+9
-9
mace_run.cc
mace_run.cc
+9
-9
未找到文件。
mace_run.cc
浏览文件 @
2b13dd2c
...
@@ -274,12 +274,12 @@ bool MultipleInputOrOutput(const std::vector<std::string> &input_names,
...
@@ -274,12 +274,12 @@ bool MultipleInputOrOutput(const std::vector<std::string> &input_names,
LOG
(
INFO
)
<<
"Net init latency: "
<<
t1
-
t0
<<
" us"
;
LOG
(
INFO
)
<<
"Net init latency: "
<<
t1
-
t0
<<
" us"
;
LOG
(
INFO
)
<<
"Total init latency: "
<<
init_micros
<<
" us"
;
LOG
(
INFO
)
<<
"Total init latency: "
<<
init_micros
<<
" us"
;
const
in
t
input_count
=
input_names
.
size
();
const
size_
t
input_count
=
input_names
.
size
();
const
in
t
output_count
=
output_names
.
size
();
const
size_
t
output_count
=
output_names
.
size
();
std
::
vector
<
mace
::
MaceInputInfo
>
input_infos
(
input_count
);
std
::
vector
<
mace
::
MaceInputInfo
>
input_infos
(
input_count
);
std
::
map
<
std
::
string
,
float
*>
outputs
;
std
::
map
<
std
::
string
,
float
*>
outputs
;
std
::
vector
<
std
::
unique_ptr
<
float
[]
>>
input_datas
(
input_count
);
std
::
vector
<
std
::
unique_ptr
<
float
[]
>>
input_datas
(
input_count
);
for
(
in
t
i
=
0
;
i
<
input_count
;
++
i
)
{
for
(
size_
t
i
=
0
;
i
<
input_count
;
++
i
)
{
// Allocate input and output
// Allocate input and output
int64_t
input_size
=
int64_t
input_size
=
std
::
accumulate
(
input_shapes
[
i
].
begin
(),
input_shapes
[
i
].
end
(),
1
,
std
::
accumulate
(
input_shapes
[
i
].
begin
(),
input_shapes
[
i
].
end
(),
1
,
...
@@ -300,7 +300,7 @@ bool MultipleInputOrOutput(const std::vector<std::string> &input_names,
...
@@ -300,7 +300,7 @@ bool MultipleInputOrOutput(const std::vector<std::string> &input_names,
input_infos
[
i
].
data
=
input_datas
[
i
].
get
();
input_infos
[
i
].
data
=
input_datas
[
i
].
get
();
}
}
std
::
vector
<
std
::
unique_ptr
<
float
[]
>>
output_datas
(
output_count
);
std
::
vector
<
std
::
unique_ptr
<
float
[]
>>
output_datas
(
output_count
);
for
(
in
t
i
=
0
;
i
<
output_count
;
++
i
)
{
for
(
size_
t
i
=
0
;
i
<
output_count
;
++
i
)
{
int64_t
output_size
=
int64_t
output_size
=
std
::
accumulate
(
output_shapes
[
i
].
begin
(),
output_shapes
[
i
].
end
(),
1
,
std
::
accumulate
(
output_shapes
[
i
].
begin
(),
output_shapes
[
i
].
end
(),
1
,
std
::
multiplies
<
int64_t
>
());
std
::
multiplies
<
int64_t
>
());
...
@@ -329,7 +329,7 @@ bool MultipleInputOrOutput(const std::vector<std::string> &input_names,
...
@@ -329,7 +329,7 @@ bool MultipleInputOrOutput(const std::vector<std::string> &input_names,
LOG
(
INFO
)
<<
"Averate latency: "
<<
(
t1
-
t0
)
/
FLAGS_round
<<
" us"
;
LOG
(
INFO
)
<<
"Averate latency: "
<<
(
t1
-
t0
)
/
FLAGS_round
<<
" us"
;
}
}
for
(
in
t
i
=
0
;
i
<
output_count
;
++
i
)
{
for
(
size_
t
i
=
0
;
i
<
output_count
;
++
i
)
{
std
::
string
output_name
=
FLAGS_output_file
+
"_"
+
FormatName
(
output_names
[
i
]);
std
::
string
output_name
=
FLAGS_output_file
+
"_"
+
FormatName
(
output_names
[
i
]);
ofstream
out_file
(
output_name
,
ios
::
binary
);
ofstream
out_file
(
output_name
,
ios
::
binary
);
int64_t
output_size
=
int64_t
output_size
=
...
@@ -370,14 +370,14 @@ int main(int argc, char **argv) {
...
@@ -370,14 +370,14 @@ int main(int argc, char **argv) {
std
::
vector
<
std
::
string
>
input_shapes
=
str_util
::
Split
(
FLAGS_input_shape
,
':'
);
std
::
vector
<
std
::
string
>
input_shapes
=
str_util
::
Split
(
FLAGS_input_shape
,
':'
);
std
::
vector
<
std
::
string
>
output_shapes
=
str_util
::
Split
(
FLAGS_output_shape
,
':'
);
std
::
vector
<
std
::
string
>
output_shapes
=
str_util
::
Split
(
FLAGS_output_shape
,
':'
);
const
in
t
input_count
=
input_shapes
.
size
();
const
size_
t
input_count
=
input_shapes
.
size
();
const
in
t
output_count
=
output_shapes
.
size
();
const
size_
t
output_count
=
output_shapes
.
size
();
std
::
vector
<
vector
<
int64_t
>>
input_shape_vec
(
input_count
);
std
::
vector
<
vector
<
int64_t
>>
input_shape_vec
(
input_count
);
std
::
vector
<
vector
<
int64_t
>>
output_shape_vec
(
output_count
);
std
::
vector
<
vector
<
int64_t
>>
output_shape_vec
(
output_count
);
for
(
in
t
i
=
0
;
i
<
input_count
;
++
i
)
{
for
(
size_
t
i
=
0
;
i
<
input_count
;
++
i
)
{
ParseShape
(
input_shapes
[
i
],
&
input_shape_vec
[
i
]);
ParseShape
(
input_shapes
[
i
],
&
input_shape_vec
[
i
]);
}
}
for
(
in
t
i
=
0
;
i
<
output_count
;
++
i
)
{
for
(
size_
t
i
=
0
;
i
<
output_count
;
++
i
)
{
ParseShape
(
output_shapes
[
i
],
&
output_shape_vec
[
i
]);
ParseShape
(
output_shapes
[
i
],
&
output_shape_vec
[
i
]);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录