未验证 提交 62698d6e 编写于 作者: T Tao Luo 提交者: GitHub

Merge pull request #8634 from typhoonzero/fix_renamevar_ref

Fix rename_var de-ref
......@@ -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,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册