diff --git a/python/paddle/fluid/clip.py b/python/paddle/fluid/clip.py index 934ba8c0c097b82991df5f66af4034ddf5ffc3b6..1c51ef296c6a2d0d1cc21bf55187c1f0722570ff 100644 --- a/python/paddle/fluid/clip.py +++ b/python/paddle/fluid/clip.py @@ -21,6 +21,7 @@ import functools from . import layers from . import framework from . import core +from .dygraph import not_support __all__ = [ 'ErrorClipByValue', @@ -335,6 +336,7 @@ class GradientClipByGlobalNorm(BaseGradientClipAttr): return param, new_grad +@not_support def set_gradient_clip(clip, param_list=None, program=None): """ To specify parameters that require gradient clip. diff --git a/python/paddle/fluid/framework.py b/python/paddle/fluid/framework.py index 53c9c83b2c473e6a56a661aa57c69266c823eab3..4c0dd79500b98c49e9fcc9f5c416ecab9706f466 100644 --- a/python/paddle/fluid/framework.py +++ b/python/paddle/fluid/framework.py @@ -654,6 +654,8 @@ class Variable(object): @property def lod_level(self): # TODO(minqiyang): Support lod_level in dygraph mode + if in_dygraph_mode(): + raise Exception("Dygraph model DO NOT supprt lod") return self.desc.lod_level() @property diff --git a/python/paddle/fluid/layers/nn.py b/python/paddle/fluid/layers/nn.py index 6676b4a381a4632d5a3cd3039eefbc5322a25d70..fc010521c43d14cd87b829fc1507c8450b21dfdb 100644 --- a/python/paddle/fluid/layers/nn.py +++ b/python/paddle/fluid/layers/nn.py @@ -6576,6 +6576,7 @@ def one_hot(input, depth): inputs = {'X': input} attrs = {'depth': depth} else: + depth.stop_gradient = True inputs = {'X': input, 'depth_tensor': depth} attrs = {} helper.append_op( @@ -9383,6 +9384,7 @@ def expand(x, expand_times, name=None): new_expand_times = [] for ele in expand_times: if isinstance(ele, Variable): + ele.stop_gradient = True new_expand_times.append(ele) else: assert (isinstance(ele, int)) diff --git a/python/paddle/fluid/regularizer.py b/python/paddle/fluid/regularizer.py index 00f8fc815b3fd54dc609f2cbe9e60a685ffbc7ee..822029a372b31fd86fb8b4568b2346aa98c003db 100644 --- a/python/paddle/fluid/regularizer.py +++ b/python/paddle/fluid/regularizer.py @@ -162,8 +162,11 @@ class L2DecayRegularizer(WeightDecayRegularizer): assert isinstance(param, framework.Parameter) assert isinstance(block, framework.Block) - decay = block.create_var( - dtype=param.dtype, shape=param.shape, lod_level=param.lod_level) + if framework.in_dygraph_mode(): + decay = block.create_var(dtype=param.dtype, shape=param.shape) + else: + decay = block.create_var( + dtype=param.dtype, shape=param.shape, lod_level=param.lod_level) # Append Op to calculate decay block.append_op( @@ -231,8 +234,11 @@ class L1DecayRegularizer(WeightDecayRegularizer): assert isinstance(param, framework.Parameter) assert isinstance(block, framework.Block) - decay = block.create_var( - dtype=param.dtype, shape=param.shape, lod_level=param.lod_level) + if framework.in_dygraph_mode(): + decay = block.create_var(dtype=param.dtype, shape=param.shape) + else: + decay = block.create_var( + dtype=param.dtype, shape=param.shape, lod_level=param.lod_level) # Append sign op block.append_op(