Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
s920243400
PaddleDetection
提交
e0cee58c
P
PaddleDetection
项目概览
s920243400
/
PaddleDetection
与 Fork 源项目一致
Fork自
PaddlePaddle / PaddleDetection
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleDetection
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e0cee58c
编写于
10月 17, 2017
作者:
Y
Yang Yang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify protobuf
上级
865c2c8e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
9 addition
and
2 deletion
+9
-2
paddle/framework/framework.proto
paddle/framework/framework.proto
+1
-1
paddle/framework/prune.cc
paddle/framework/prune.cc
+8
-1
未找到文件。
paddle/framework/framework.proto
浏览文件 @
e0cee58c
...
@@ -55,7 +55,7 @@ message OpDesc {
...
@@ -55,7 +55,7 @@ message OpDesc {
repeated
Var
inputs
=
1
;
repeated
Var
inputs
=
1
;
repeated
Var
outputs
=
2
;
repeated
Var
outputs
=
2
;
repeated
Attr
attrs
=
4
;
repeated
Attr
attrs
=
4
;
required
bool
is_target
=
5
[
default
=
false
];
optional
bool
is_target
=
5
[
default
=
false
];
};
};
// OpProto describes a C++ framework::OperatorBase derived class.
// OpProto describes a C++ framework::OperatorBase derived class.
...
...
paddle/framework/prune.cc
浏览文件 @
e0cee58c
...
@@ -39,6 +39,13 @@ bool HasDependentVar(const OpDesc& op_desc,
...
@@ -39,6 +39,13 @@ bool HasDependentVar(const OpDesc& op_desc,
return
false
;
return
false
;
}
}
bool
IsTarget
(
const
OpDesc
&
op_desc
)
{
if
(
op_desc
.
has_is_target
())
{
return
op_desc
.
is_target
();
}
return
false
;
}
void
Prune
(
const
ProgramDesc
&
input
,
ProgramDesc
&
output
,
int
block_id
)
{
void
Prune
(
const
ProgramDesc
&
input
,
ProgramDesc
&
output
,
int
block_id
)
{
// TODO(tonyyang-svail):
// TODO(tonyyang-svail):
// - will change to use multiple blocks for RNN op and Cond Op
// - will change to use multiple blocks for RNN op and Cond Op
...
@@ -66,7 +73,7 @@ void Prune(const ProgramDesc& input, ProgramDesc& output, int block_id) {
...
@@ -66,7 +73,7 @@ void Prune(const ProgramDesc& input, ProgramDesc& output, int block_id) {
for
(
auto
op_iter
=
ops
.
rbegin
();
op_iter
!=
ops
.
rend
();
++
op_iter
)
{
for
(
auto
op_iter
=
ops
.
rbegin
();
op_iter
!=
ops
.
rend
();
++
op_iter
)
{
auto
&
op_desc
=
*
op_iter
;
auto
&
op_desc
=
*
op_iter
;
if
(
op_desc
.
is_target
(
)
||
HasDependentVar
(
op_desc
,
dependent_vars
))
{
if
(
IsTarget
(
op_desc
)
||
HasDependentVar
(
op_desc
,
dependent_vars
))
{
// insert its input to the dependency graph
// insert its input to the dependency graph
for
(
auto
&
var
:
op_desc
.
inputs
())
{
for
(
auto
&
var
:
op_desc
.
inputs
())
{
for
(
auto
&
argu
:
var
.
arguments
())
{
for
(
auto
&
argu
:
var
.
arguments
())
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录