Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
飞翔的比温特
Mace
提交
b39b5399
Mace
项目概览
飞翔的比温特
/
Mace
与 Fork 源项目一致
Fork自
Xiaomi / Mace
通知
3
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,体验更适合开发者的 AI 搜索 >>
提交
b39b5399
编写于
10月 23, 2020
作者:
B
Bin Li
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: Use 1 element tensor as scalar for Eltwise
上级
37cbf203
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
36 addition
and
29 deletion
+36
-29
tools/python/transform/onnx_converter.py
tools/python/transform/onnx_converter.py
+4
-2
tools/python/transform/tensorflow_converter.py
tools/python/transform/tensorflow_converter.py
+32
-27
未找到文件。
tools/python/transform/onnx_converter.py
浏览文件 @
b39b5399
...
...
@@ -950,7 +950,8 @@ class OnnxConverter(base_converter.ConverterInterface):
node
.
inputs
[
0
]
not
in
self
.
_consts
:
const_name
=
node
.
inputs
[
1
]
const_tensor
=
self
.
_consts
[
const_name
]
if
len
(
const_tensor
.
dims
)
==
0
:
dims
=
const_tensor
.
dims
if
len
(
dims
)
==
0
or
(
len
(
dims
)
==
1
and
dims
[
0
]
==
1
):
value_arg
=
op
.
arg
.
add
()
value_arg
.
name
=
MaceKeyword
.
mace_scalar_input_str
if
const_tensor
.
data_type
==
mace_pb2
.
DT_INT32
:
...
...
@@ -970,7 +971,8 @@ class OnnxConverter(base_converter.ConverterInterface):
node
.
inputs
[
1
]
not
in
self
.
_consts
:
const_name
=
node
.
inputs
[
0
]
const_tensor
=
self
.
_consts
[
const_name
]
if
len
(
const_tensor
.
dims
)
==
0
:
dims
=
const_tensor
.
dims
if
len
(
dims
)
==
0
or
(
len
(
dims
)
==
1
and
dims
[
0
]
==
1
):
value_arg
=
op
.
arg
.
add
()
value_arg
.
name
=
MaceKeyword
.
mace_scalar_input_str
if
const_tensor
.
data_type
==
mace_pb2
.
DT_INT32
:
...
...
tools/python/transform/tensorflow_converter.py
浏览文件 @
b39b5399
...
...
@@ -587,33 +587,38 @@ class TensorflowConverter(base_converter.ConverterInterface):
EltwiseType
.
SUM
,
EltwiseType
.
PROD
,
EltwiseType
.
MAX
,
EltwiseType
.
MIN
]
if
(
len
(
tf_op
.
inputs
)
>
1
and
len
(
self
.
infer_tensor_shape
(
tf_op
.
inputs
[
1
]))
==
0
and
tf_op
.
inputs
[
1
].
op
.
type
==
TFOpType
.
Const
.
name
):
scalar
=
tf_op
.
inputs
[
1
].
eval
().
astype
(
np
.
float32
)
value_arg
=
op
.
arg
.
add
()
value_arg
.
name
=
MaceKeyword
.
mace_scalar_input_str
value_arg
.
f
=
scalar
self
.
_skip_tensor
.
add
(
tf_op
.
inputs
[
1
].
name
)
value_index_arg
=
op
.
arg
.
add
()
value_index_arg
.
name
=
\
MaceKeyword
.
mace_scalar_input_index_str
value_index_arg
.
i
=
1
self
.
_skip_tensor
.
add
(
tf_op
.
inputs
[
1
].
name
)
del
op
.
input
[
1
]
elif
len
(
self
.
infer_tensor_shape
(
tf_op
.
inputs
[
0
]))
==
0
and
\
tf_op
.
inputs
[
0
].
op
.
type
==
TFOpType
.
Const
.
name
and
\
is_commutative
(
type_arg
.
i
):
scalar
=
tf_op
.
inputs
[
0
].
eval
().
astype
(
np
.
float32
)
value_arg
=
op
.
arg
.
add
()
value_arg
.
name
=
MaceKeyword
.
mace_scalar_input_str
value_arg
.
f
=
scalar
value_index_arg
=
op
.
arg
.
add
()
value_index_arg
.
name
=
\
MaceKeyword
.
mace_scalar_input_index_str
value_index_arg
.
i
=
0
self
.
_skip_tensor
.
add
(
tf_op
.
inputs
[
0
].
name
)
del
op
.
input
[
0
]
if
len
(
tf_op
.
inputs
)
>
1
:
shape
=
self
.
infer_tensor_shape
(
tf_op
.
inputs
[
1
])
if
(
len
(
shape
)
==
0
or
(
len
(
shape
)
==
1
and
shape
[
0
]
==
1
))
and
\
tf_op
.
inputs
[
1
].
op
.
type
==
TFOpType
.
Const
.
name
:
scalar
=
tf_op
.
inputs
[
1
].
eval
().
astype
(
np
.
float32
)
value_arg
=
op
.
arg
.
add
()
value_arg
.
name
=
MaceKeyword
.
mace_scalar_input_str
value_arg
.
f
=
scalar
self
.
_skip_tensor
.
add
(
tf_op
.
inputs
[
1
].
name
)
value_index_arg
=
op
.
arg
.
add
()
value_index_arg
.
name
=
\
MaceKeyword
.
mace_scalar_input_index_str
value_index_arg
.
i
=
1
self
.
_skip_tensor
.
add
(
tf_op
.
inputs
[
1
].
name
)
del
op
.
input
[
1
]
else
:
shape
=
self
.
infer_tensor_shape
(
tf_op
.
inputs
[
0
])
if
(
len
(
shape
)
==
0
or
(
len
(
shape
)
==
1
and
shape
[
0
]
==
1
))
and
\
is_commutative
(
type_arg
.
i
)
and
\
tf_op
.
inputs
[
0
].
op
.
type
==
TFOpType
.
Const
.
name
:
scalar
=
tf_op
.
inputs
[
0
].
eval
().
astype
(
np
.
float32
)
value_arg
=
op
.
arg
.
add
()
value_arg
.
name
=
MaceKeyword
.
mace_scalar_input_str
value_arg
.
f
=
scalar
value_index_arg
=
op
.
arg
.
add
()
value_index_arg
.
name
=
\
MaceKeyword
.
mace_scalar_input_index_str
value_index_arg
.
i
=
0
self
.
_skip_tensor
.
add
(
tf_op
.
inputs
[
0
].
name
)
del
op
.
input
[
0
]
except
tf
.
errors
.
InvalidArgumentError
:
pass
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录