File tree 1 file changed +7
-5
lines changed
paddle/fluid/framework/details
1 file changed +7
-5
lines changed Original file line number Diff line number Diff line change 20
20
#include < numeric>
21
21
#include < sstream>
22
22
#include < string>
23
+ #include < unordered_map>
24
+ #include < unordered_set>
25
+ #include " paddle/fluid/framework/operator.h"
23
26
#include " paddle/fluid/framework/var_desc.h"
24
27
#include " paddle/fluid/platform/cpu_info.h"
25
28
@@ -302,7 +305,10 @@ std::string OrderedSet::ToString() const {
302
305
303
306
bool NodeCanReused (ir::Node* node) {
304
307
// valid the node is a var node
305
- if (node == nullptr || !node->IsVar () || node->IsCtrlVar ()) return false ;
308
+ // vars can be @EMPTY@, @LR_DECAY_REUSE_ID@. For example, while_grad
309
+ if (node == nullptr || !node->IsVar () || node->IsCtrlVar () ||
310
+ node->Name () == kEmptyVarName )
311
+ return false ;
306
312
307
313
bool flag = true ;
308
314
// op output force generated in cpu, can not be reused.
@@ -348,10 +354,6 @@ bool NodeCanReused(const VarDesc& node) {
348
354
if (shape.empty () || size < MinChunkSize ()) {
349
355
return false ;
350
356
}
351
- // vars can be @EMPTY@, @LR_DECAY_REUSE_ID@. For example, while_grad
352
- std::string name = node.Name ();
353
- if (!name.empty () && name[0 ] == ' @' && name[name.size () - 1 ] == ' @' )
354
- return false ;
355
357
return true ;
356
358
}
357
359
You can’t perform that action at this time.
0 commit comments