Skip to content

Commit 62698d6

Browse files
authored
Merge pull request #8634 from typhoonzero/fix_renamevar_ref
Fix rename_var de-ref
2 parents 81374eb + 1e9efc2 commit 62698d6

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

python/paddle/fluid/framework.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -747,29 +747,25 @@ def rename_var(self, name, new_name):
747747
if not self.has_var(name):
748748
raise ValueError("var %s is not in current" % name)
749749
v = self.var(name)
750-
stop_gradient = None
751-
trainable = None
752-
optimize_attr = None
753-
regularizer = None
754-
gradient_clip_attr = None
755-
error_clip = None
756750
if type(v) == Parameter:
751+
var_type = "Parameter"
757752
stop_gradient = v.stop_gradient
758753
trainable = v.trainable
759754
optimize_attr = v.optimize_attr
760755
regularizer = v.regularizer
761756
gradient_clip_attr = v.gradient_clip_attr
762757
error_clip = v.error_clip
763758
elif type(v) == Variable:
759+
var_type = "Variable"
764760
error_clip = v.error_clip
765761
stop_gradient = v.stop_gradient
766762
else:
767763
raise ValueError("unsupported var type: %s", type(v))
768764

769765
self.desc.rename_var(name, new_name)
766+
# NOTE: v is destroyed by C++ after calling rename_var.
770767
d = self.desc.find_var(new_name)
771-
var = None
772-
if type(v) == Parameter:
768+
if var_type == "Parameter":
773769
var = Parameter(
774770
self,
775771
d.shape(),
@@ -781,7 +777,7 @@ def rename_var(self, name, new_name):
781777
regularizer=regularizer,
782778
gradient_clip_attr=gradient_clip_attr,
783779
error_clip=error_clip)
784-
elif type(v) == Variable:
780+
elif var_type == "Variable":
785781
var = Variable(
786782
self,
787783
type=v.type,

0 commit comments

Comments
 (0)