Merge pull request #8634 from typhoonzero/fix_renamevar_ref

Fix rename_var de-ref
tonyyang-svail-patch-1
Tao Luo 7 years ago committed by GitHub
commit 62698d6e17
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -747,13 +747,8 @@ class Block(object):
if not self.has_var(name):
raise ValueError("var %s is not in current" % name)
v = self.var(name)
stop_gradient = None
trainable = None
optimize_attr = None
regularizer = None
gradient_clip_attr = None
error_clip = None
if type(v) == Parameter:
var_type = "Parameter"
stop_gradient = v.stop_gradient
trainable = v.trainable
optimize_attr = v.optimize_attr
@ -761,15 +756,16 @@ class Block(object):
gradient_clip_attr = v.gradient_clip_attr
error_clip = v.error_clip
elif type(v) == Variable:
var_type = "Variable"
error_clip = v.error_clip
stop_gradient = v.stop_gradient
else:
raise ValueError("unsupported var type: %s", type(v))
self.desc.rename_var(name, new_name)
# NOTE: v is destroyed by C++ after calling rename_var.
d = self.desc.find_var(new_name)
var = None
if type(v) == Parameter:
if var_type == "Parameter":
var = Parameter(
self,
d.shape(),
@ -781,7 +777,7 @@ class Block(object):
regularizer=regularizer,
gradient_clip_attr=gradient_clip_attr,
error_clip=error_clip)
elif type(v) == Variable:
elif var_type == "Variable":
var = Variable(
self,
type=v.type,

Loading…
Cancel
Save