Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
毕竟曾有刹那
Mace
提交
0d66bcf0
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,发现更多精彩内容 >>
提交
0d66bcf0
编写于
6月 14, 2019
作者:
B
Bin Li
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Hexagon support s2d, d2s and sub
上级
190e2680
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
30 addition
and
6 deletion
+30
-6
mace/python/tools/converter_tool/hexagon_converter.py
mace/python/tools/converter_tool/hexagon_converter.py
+30
-6
未找到文件。
mace/python/tools/converter_tool/hexagon_converter.py
浏览文件 @
0d66bcf0
...
...
@@ -35,6 +35,7 @@ from six.moves import reduce
HexagonSupportedOps
=
[
'BatchToSpaceND_8'
,
'DepthToSpace_8'
,
'DepthwiseSupernode_8x8p32to8'
,
'DequantizeOUTPUT_8tof'
,
'INPUT'
,
...
...
@@ -45,8 +46,10 @@ HexagonSupportedOps = [
'QuantizedMaxPool_8'
,
'QuantizedResizeBilinear_8'
,
'QuantizedSoftmax_8'
,
'QuantizedSub_8p8to8'
,
'QuantizeINPUT_f_to_8'
,
'SpaceToBatchND_8'
,
'SpaceToDepth_8'
,
'Supernode_8x8p32to8'
,
'Nop'
,
]
...
...
@@ -59,12 +62,14 @@ class HexagonOps(object):
def
__init__
(
self
):
self
.
hexagon_ops
=
{
MaceOp
.
BatchToSpaceND
.
name
:
HexagonOp
.
BatchToSpaceND_8
.
name
,
MaceOp
.
DepthToSpace
.
name
:
HexagonOp
.
DepthToSpace_8
.
name
,
MaceOp
.
Concat
.
name
:
HexagonOp
.
QuantizedConcat_8
.
name
,
MaceOp
.
Conv2D
.
name
:
HexagonOp
.
Supernode_8x8p32to8
.
name
,
MaceOp
.
DepthwiseConv2d
.
name
:
HexagonOp
.
DepthwiseSupernode_8x8p32to8
.
name
,
MaceOp
.
Dequantize
.
name
:
HexagonOp
.
DequantizeOUTPUT_8tof
.
name
,
MaceOp
.
Eltwise
.
name
:
[
HexagonOp
.
QuantizedAdd_8p8to8
],
MaceOp
.
Eltwise
.
name
:
[
HexagonOp
.
QuantizedAdd_8p8to8
.
name
,
HexagonOp
.
QuantizedSub_8p8to8
.
name
],
MaceOp
.
Identity
.
name
:
HexagonOp
.
Nop
.
name
,
MaceOp
.
Quantize
.
name
:
HexagonOp
.
QuantizeINPUT_f_to_8
.
name
,
MaceOp
.
Pooling
.
name
:
[
HexagonOp
.
QuantizedAvgPool_8
.
name
,
...
...
@@ -73,6 +78,7 @@ class HexagonOps(object):
MaceOp
.
ResizeBilinear
.
name
:
HexagonOp
.
QuantizedResizeBilinear_8
.
name
,
MaceOp
.
SpaceToBatchND
.
name
:
HexagonOp
.
SpaceToBatchND_8
.
name
,
MaceOp
.
SpaceToDepth
.
name
:
HexagonOp
.
SpaceToDepth_8
.
name
,
MaceOp
.
Softmax
.
name
:
HexagonOp
.
QuantizedSoftmax_8
.
name
,
}
...
...
@@ -207,6 +213,17 @@ class HexagonConverter(base_converter.ConverterInterface):
pad_tensor
.
int32_data
.
extend
(
pad_arg
.
ints
)
op
.
input
.
extend
([
strides_tensor
.
name
,
pad_tensor
.
name
])
self
.
add_min_max_const_node
(
op
,
op
.
input
[
0
])
elif
op
.
type
==
MaceOp
.
DepthToSpace
.
name
\
or
op
.
type
==
MaceOp
.
SpaceToDepth
.
name
:
size_arg
=
ConverterUtil
.
get_arg
(
op
,
MaceKeyword
.
mace_space_depth_block_size_str
)
size_tensor
=
self
.
_model
.
tensors
.
add
()
size_tensor
.
name
=
op
.
name
+
'/block_size:0'
size_tensor
.
data_type
=
mace_pb2
.
DT_INT32
size_tensor
.
dims
.
extend
([
1
])
size_tensor
.
int32_data
.
extend
([
size_arg
.
i
])
op
.
input
.
extend
([
size_tensor
.
name
])
self
.
add_min_max_const_node
(
op
,
op
.
input
[
0
])
elif
op
.
type
==
MaceOp
.
Pooling
.
name
:
self
.
add_min_max_const_node
(
op
,
op
.
input
[
0
])
window_arg
=
ConverterUtil
.
get_arg
(
...
...
@@ -315,11 +332,18 @@ class HexagonConverter(base_converter.ConverterInterface):
if
arg
is
not
None
:
op
.
padding
=
padding_mode
[
PaddingMode
(
arg
.
i
)]
if
(
op
.
type
==
MaceOp
.
Eltwise
.
name
and
ConverterUtil
.
get_arg
(
op
,
MaceKeyword
.
mace_element_type_str
).
i
==
EltwiseType
.
SUM
.
value
):
if
op
.
type
==
MaceOp
.
Eltwise
.
name
:
element_type
=
\
ConverterUtil
.
get_arg
(
op
,
MaceKeyword
.
mace_element_type_str
).
i
if
element_type
==
EltwiseType
.
SUM
.
value
:
op
.
type
=
HexagonOp
.
QuantizedAdd_8p8to8
.
name
elif
element_type
==
EltwiseType
.
SUB
.
value
:
op
.
type
=
HexagonOp
.
QuantizedSub_8p8to8
.
name
else
:
mace_check
(
False
,
"Hexagon does not support eltmentwise %s"
%
EltwiseType
(
element_type
).
name
)
elif
op
.
type
==
MaceOp
.
Pooling
.
name
:
pooling_type_arg
=
ConverterUtil
.
get_arg
(
op
,
MaceKeyword
.
mace_pooling_type_str
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录