Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
毕竟曾有刹那
Mace
提交
b534d109
Mace
项目概览
毕竟曾有刹那
/
Mace
与 Fork 源项目一致
Fork自
Xiaomi / Mace
通知
1
Star
0
Fork
0
代码
文件
提交
分支
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b534d109
编写于
9月 09, 2019
作者:
李
李寅
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'hexagon' into 'master'
Fix hexagon multiple outputs See merge request !1189
上级
8d64715c
c154e47d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
37 addition
and
15 deletion
+37
-15
tools/python/transform/hexagon_converter.py
tools/python/transform/hexagon_converter.py
+37
-15
未找到文件。
tools/python/transform/hexagon_converter.py
浏览文件 @
b534d109
...
@@ -440,36 +440,58 @@ class HexagonConverter(base_converter.ConverterInterface):
...
@@ -440,36 +440,58 @@ class HexagonConverter(base_converter.ConverterInterface):
mace_check
(
mace_check
(
quantize_input_op
.
type
==
HexagonOp
.
QuantizeINPUT_f_to_8
.
name
,
quantize_input_op
.
type
==
HexagonOp
.
QuantizeINPUT_f_to_8
.
name
,
"Not started with Quantize op."
)
"Not started with Quantize op."
)
first_quantize_input_op
=
copy
.
deepcopy
(
quantize_input_op
)
del
quantize_input_op
.
input
[:]
del
quantize_input_op
.
input
[:]
del
quantize_input_op
.
output
[:]
del
quantize_input_op
.
output_shape
[:]
del
quantize_input_op
.
output_type
[:]
del
quantize_input_op
.
out_max_byte_size
[:]
dequantize_output_op
=
self
.
_model
.
op
[
-
1
]
dequantize_output_op
=
self
.
_model
.
op
[
-
1
]
mace_check
(
dequantize_output_op
.
type
mace_check
(
dequantize_output_op
.
type
==
HexagonOp
.
DequantizeOUTPUT_8tof
.
name
,
==
HexagonOp
.
DequantizeOUTPUT_8tof
.
name
,
"Not ended with Dequantize op."
)
"Not ended with Dequantize op."
)
dequantize_input
=
[
input
for
input
in
dequantize_output_op
.
input
]
last_dequantize_output_op
=
copy
.
deepcopy
(
dequantize_output_op
)
del
dequantize_output_op
.
input
[:]
del
dequantize_output_op
.
input
[:]
del
dequantize_output_op
.
output
[:]
del
dequantize_output_op
.
output_shape
[:]
del
dequantize_output_op
.
output_shape
[:]
del
dequantize_output_op
.
output_type
[:]
del
dequantize_output_op
.
output_type
[:]
del
dequantize_output_op
.
out_max_byte_size
[:]
del
dequantize_output_op
.
out_max_byte_size
[:]
# Combine multiple inputs/outputs to one hexagon input/output node,
# in input_info/output_info order
ops
=
{}
for
op
in
self
.
_model
.
op
:
ops
[
op
.
name
]
=
op
for
input_node
in
self
.
_option
.
input_nodes
.
values
():
op_name
=
normalize_name
(
MaceKeyword
.
mace_input_node_name
+
'_'
+
input_node
.
name
)
op
=
first_quantize_input_op
\
if
op_name
==
first_quantize_input_op
.
name
else
ops
[
op_name
]
mace_check
(
op
.
type
==
HexagonOp
.
QuantizeINPUT_f_to_8
.
name
,
"input node type is: %s"
%
op
.
type
)
quantize_input_op
.
output
.
extend
(
op
.
output
)
quantize_input_op
.
output_shape
.
extend
(
op
.
output_shape
)
quantize_input_op
.
output_type
.
extend
(
op
.
output_type
)
quantize_input_op
.
out_max_byte_size
.
extend
(
op
.
out_max_byte_size
)
for
output_node
in
self
.
_option
.
check_nodes
.
values
():
op_name
=
normalize_name
(
output_node
.
name
)
op
=
last_dequantize_output_op
\
if
op_name
==
last_dequantize_output_op
.
name
else
ops
[
op_name
]
mace_check
(
op
.
type
==
HexagonOp
.
DequantizeOUTPUT_8tof
.
name
,
"output node type is: %s"
%
op
.
type
)
dequantize_output_op
.
input
.
extend
(
op
.
input
)
# Delete redundant inputs/outputs nodes
index
=
1
index
=
1
while
index
<
len
(
self
.
_model
.
op
)
-
1
:
while
index
<
len
(
self
.
_model
.
op
)
-
1
:
op
=
self
.
_model
.
op
[
index
]
op
=
self
.
_model
.
op
[
index
]
if
op
.
type
==
HexagonOp
.
QuantizeINPUT_f_to_8
.
name
:
if
op
.
type
==
HexagonOp
.
QuantizeINPUT_f_to_8
.
name
\
quantize_input_op
.
output
.
extend
(
op
.
output
)
or
op
.
type
==
HexagonOp
.
DequantizeOUTPUT_8tof
.
name
:
quantize_input_op
.
output_shape
.
extend
(
op
.
output_shape
)
quantize_input_op
.
output_type
.
extend
(
op
.
output_type
)
quantize_input_op
.
out_max_byte_size
.
extend
(
op
.
out_max_byte_size
)
del
self
.
_model
.
op
[
index
]
elif
op
.
type
==
HexagonOp
.
DequantizeOUTPUT_8tof
.
name
:
dequantize_output_op
.
input
.
extend
(
op
.
input
)
del
self
.
_model
.
op
[
index
]
del
self
.
_model
.
op
[
index
]
else
:
index
+=
1
index
+=
1
# input order matters
dequantize_output_op
.
input
.
extend
(
dequantize_input
)
if
self
.
_option
.
device
==
DeviceType
.
HTA
.
value
:
if
self
.
_option
.
device
==
DeviceType
.
HTA
.
value
:
# replace QuantizeINPUT_f_to_8 with INPUT
# replace QuantizeINPUT_f_to_8 with INPUT
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录