Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
d90e40cd
P
Paddle
项目概览
机器未来
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
d90e40cd
编写于
5月 31, 2017
作者:
X
xuwei06
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
MOdify make_model_diagram.py so that it can be used to draw dot diagram given model proto
上级
966ca1f3
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
13 addition
and
9 deletion
+13
-9
python/paddle/utils/make_model_diagram.py
python/paddle/utils/make_model_diagram.py
+13
-9
未找到文件。
python/paddle/utils/make_model_diagram.py
浏览文件 @
d90e40cd
...
...
@@ -39,6 +39,10 @@ def make_layer_label(layer_config):
def
make_diagram
(
config_file
,
dot_file
,
config_arg_str
):
config
=
parse_config
(
config_file
,
config_arg_str
)
make_diagram_from_proto
(
config
.
model_config
,
dot_file
)
def
make_diagram_from_proto
(
model_config
,
dot_file
):
# print >> sys.stderr, config
name2id
=
{}
f
=
open
(
dot_file
,
'w'
)
...
...
@@ -59,12 +63,12 @@ def make_diagram(config_file, dot_file, config_arg_str):
print
>>
f
,
'digraph graphname {'
print
>>
f
,
'node [width=0.375,height=0.25];'
for
i
in
xrange
(
len
(
config
.
model_config
.
layers
)):
l
=
config
.
model_config
.
layers
[
i
]
for
i
in
xrange
(
len
(
model_config
.
layers
)):
l
=
model_config
.
layers
[
i
]
name2id
[
l
.
name
]
=
i
i
=
0
for
sub_model
in
config
.
model_config
.
sub_models
:
for
sub_model
in
model_config
.
sub_models
:
if
sub_model
.
name
==
'root'
:
continue
print
>>
f
,
'subgraph cluster_%s {'
%
i
...
...
@@ -78,18 +82,18 @@ def make_diagram(config_file, dot_file, config_arg_str):
for
layer_name
in
sub_model
.
layer_names
:
submodel_layers
.
add
(
layer_name
)
lid
=
name2id
[
layer_name
]
layer_config
=
config
.
model_config
.
layers
[
lid
]
layer_config
=
model_config
.
layers
[
lid
]
label
=
make_layer_label
(
layer_config
)
print
>>
f
,
'l%s [label="%s", shape=box];'
%
(
lid
,
label
)
print
>>
f
,
'}'
for
i
in
xrange
(
len
(
config
.
model_config
.
layers
)):
l
=
config
.
model_config
.
layers
[
i
]
for
i
in
xrange
(
len
(
model_config
.
layers
)):
l
=
model_config
.
layers
[
i
]
if
l
.
name
not
in
submodel_layers
:
label
=
make_layer_label
(
l
)
print
>>
f
,
'l%s [label="%s", shape=box];'
%
(
i
,
label
)
for
sub_model
in
config
.
model_config
.
sub_models
:
for
sub_model
in
model_config
.
sub_models
:
if
sub_model
.
name
==
'root'
:
continue
for
link
in
sub_model
.
in_links
:
...
...
@@ -99,8 +103,8 @@ def make_diagram(config_file, dot_file, config_arg_str):
for
mem
in
sub_model
.
memories
:
print
>>
f
,
make_mem
(
mem
)
for
i
in
xrange
(
len
(
config
.
model_config
.
layers
)):
for
l
in
config
.
model_config
.
layers
[
i
].
inputs
:
for
i
in
xrange
(
len
(
model_config
.
layers
)):
for
l
in
model_config
.
layers
[
i
].
inputs
:
print
>>
f
,
'l%s -> l%s [label="%s"];'
%
(
name2id
[
l
.
input_layer_name
],
i
,
l
.
input_parameter_name
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录