提交 aee68677 编写于 作者: W wanghaoshuang

Add clone_variable function for Block class.

上级 d7e5e1f1
...@@ -918,6 +918,24 @@ class Block(object): ...@@ -918,6 +918,24 @@ class Block(object):
name=v.name) name=v.name)
self.vars[new_p.name] = new_p self.vars[new_p.name] = new_p
def clone_variable(self, var):
"""
Clone a variable into current block.
Args:
var: the variable to be cloned.
Returns:
The new variable cloned from 'var' in current block.
"""
assert isinstance(var, Variable)
return self.create_var(
name=var.name,
shape=var.shape,
dtype=var.dtype,
type=var.type,
lod_level=var.lod_level,
persistable=True)
class Program(object): class Program(object):
def __init__(self): def __init__(self):
...@@ -960,14 +978,14 @@ class Program(object): ...@@ -960,14 +978,14 @@ class Program(object):
"""Clone the Program object """Clone the Program object
Set for_test to False when we want to clone the program for training. Set for_test to False when we want to clone the program for training.
Set for_test to True when we want to clone the program for testing. Set for_test to True when we want to clone the program for testing.
Args: Args:
for_test(bool): Some operators, such as batch_norm and drop_out ops, for_test(bool): Some operators, such as batch_norm and drop_out ops,
behave differently in training and testing. If for_test is True, behave differently in training and testing. If for_test is True,
the is_test attributes in these operators will be set to True for the is_test attributes in these operators will be set to True for
testing purposes, otherwise, they remain unchanged. testing purposes, otherwise, they remain unchanged.
Returns(Program): Returns(Program):
The cloned Program object. The cloned Program object.
""" """
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册