Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Xiaomi
Mace
提交
4ef1aae0
Mace
项目概览
Xiaomi
/
Mace
通知
106
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4ef1aae0
编写于
4月 27, 2018
作者:
L
liuqi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Support atrous depthwise convolution converter.
上级
948db3c7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
7 deletion
+15
-7
mace/python/tools/tf_converter_lib.py
mace/python/tools/tf_converter_lib.py
+15
-7
未找到文件。
mace/python/tools/tf_converter_lib.py
浏览文件 @
4ef1aae0
...
...
@@ -946,7 +946,8 @@ class TFConverter(object):
def
is_atrous_conv2d
(
self
,
op
):
return
op
.
type
==
'SpaceToBatchND'
and
\
len
(
self
.
tf_graph
[
op
.
name
])
==
1
and
\
self
.
tf_graph
[
op
.
name
][
0
].
type
==
'Conv2D'
(
self
.
tf_graph
[
op
.
name
][
0
].
type
==
'Conv2D'
or
self
.
tf_graph
[
op
.
name
][
0
].
type
==
'DepthwiseConv2dNative'
)
def
convert_atrous_conv2d
(
self
,
op
):
op_def
=
mace_pb2
.
OperatorDef
()
...
...
@@ -955,18 +956,25 @@ class TFConverter(object):
arg
.
i
=
self
.
dt
conv_op
=
self
.
tf_graph
[
op
.
name
][
0
]
op_def
.
name
=
conv_op
.
name
op_def
.
type
=
conv_op
.
type
if
conv_op
.
type
==
'DepthwiseConv2dNative'
:
op_def
.
type
=
'DepthwiseConv2d'
else
:
op_def
.
type
=
conv_op
.
type
if
self
.
device
==
'gpu'
:
self
.
transpose_filter_tensor
[
get_input_tensor
(
conv_op
,
1
).
name
]
=
(
0
,
1
,
3
,
2
)
op_def
.
input
.
extend
([
op
.
inputs
[
0
].
name
])
if
op_def
.
type
==
'DepthwiseConv2d'
:
buffer_type
=
"DW_CONV2D_FILTER"
else
:
self
.
transpose_filter_tensor
[
get_input_tensor
(
conv_op
,
1
).
name
]
=
(
0
,
1
,
3
,
2
)
buffer_type
=
"CONV2D_FILTER"
output_name
=
self
.
add_buffer_to_image
(
get_input_tensor
(
conv_op
,
1
).
name
,
"CONV2D_FILTER"
)
get_input_tensor
(
conv_op
,
1
).
name
,
buffer_type
)
op_def
.
input
.
extend
([
output_name
])
else
:
self
.
transpose_filter_tensor
[
get_input_tensor
(
conv_op
,
1
).
name
]
=
(
3
,
2
,
0
,
1
)
self
.
transpose_filter_tensor
[
get_input_tensor
(
conv_op
,
1
).
name
]
=
(
3
,
2
,
0
,
1
)
op_def
.
input
.
extend
([
get_input_tensor
(
op
,
0
).
name
])
op_def
.
input
.
extend
([
get_input_tensor
(
conv_op
,
1
).
name
])
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录