未验证 提交 a710738e 编写于 作者: Z zhiboniu 提交者: GitHub

unset fluid in nn.others (#34935)

上级 1aa67778
...@@ -22,23 +22,32 @@ except ImportError: ...@@ -22,23 +22,32 @@ except ImportError:
) )
from .batch import batch # noqa: F401 from .batch import batch # noqa: F401
from .fluid import monkey_patch_variable from .framework import monkey_patch_variable
from .fluid.dygraph import monkey_patch_math_varbase from .framework import monkey_patch_math_varbase
monkey_patch_variable() monkey_patch_variable()
monkey_patch_math_varbase() monkey_patch_math_varbase()
from .framework import disable_signal_handler # noqa: F401
from .framework import get_flags # noqa: F401
from .framework import set_flags # noqa: F401
from .framework import disable_static # noqa: F401
from .framework import enable_static # noqa: F401
from .framework import in_dynamic_mode # noqa: F401
from .framework.dtype import dtype as dtype # noqa: F401 from .framework.dtype import dtype as dtype # noqa: F401
from paddle.framework.dtype import uint8 # noqa: F401 from .framework.dtype import uint8 # noqa: F401
from paddle.framework.dtype import int8 # noqa: F401 from .framework.dtype import int8 # noqa: F401
from paddle.framework.dtype import int16 # noqa: F401 from .framework.dtype import int16 # noqa: F401
from paddle.framework.dtype import int32 # noqa: F401 from .framework.dtype import int32 # noqa: F401
from paddle.framework.dtype import int64 # noqa: F401 from .framework.dtype import int64 # noqa: F401
from paddle.framework.dtype import float16 # noqa: F401 from .framework.dtype import float16 # noqa: F401
from paddle.framework.dtype import float32 # noqa: F401 from .framework.dtype import float32 # noqa: F401
from paddle.framework.dtype import float64 # noqa: F401 from .framework.dtype import float64 # noqa: F401
from paddle.framework.dtype import bfloat16 # noqa: F401 from .framework.dtype import bfloat16 # noqa: F401
from paddle.framework.dtype import bool # noqa: F401 from .framework.dtype import bool # noqa: F401
from paddle.framework.dtype import complex64 # noqa: F401 from .framework.dtype import complex64 # noqa: F401
from paddle.framework.dtype import complex128 # noqa: F401 from .framework.dtype import complex128 # noqa: F401
from .framework import VarBase as Tensor # noqa: F401 from .framework import VarBase as Tensor # noqa: F401
Tensor.__qualname__ = 'Tensor' # noqa: F401 Tensor.__qualname__ = 'Tensor' # noqa: F401
import paddle.compat # noqa: F401 import paddle.compat # noqa: F401
...@@ -142,6 +151,7 @@ from .tensor.manipulation import scatter_nd_add # noqa: F401 ...@@ -142,6 +151,7 @@ from .tensor.manipulation import scatter_nd_add # noqa: F401
from .tensor.manipulation import scatter_nd # noqa: F401 from .tensor.manipulation import scatter_nd # noqa: F401
from .tensor.manipulation import shard_index # noqa: F401 from .tensor.manipulation import shard_index # noqa: F401
from .tensor.manipulation import slice # noqa: F401 from .tensor.manipulation import slice # noqa: F401
from .tensor.manipulation import crop # noqa: F401
from .tensor.manipulation import split # noqa: F401 from .tensor.manipulation import split # noqa: F401
from .tensor.manipulation import squeeze # noqa: F401 from .tensor.manipulation import squeeze # noqa: F401
from .tensor.manipulation import squeeze_ # noqa: F401 from .tensor.manipulation import squeeze_ # noqa: F401
...@@ -316,23 +326,15 @@ from .tensor.stat import quantile # noqa: F401 ...@@ -316,23 +326,15 @@ from .tensor.stat import quantile # noqa: F401
from .device import get_cudnn_version # noqa: F401 from .device import get_cudnn_version # noqa: F401
from .device import set_device # noqa: F401 from .device import set_device # noqa: F401
from .device import get_device # noqa: F401 from .device import get_device # noqa: F401
from .fluid.framework import is_compiled_with_cinn # noqa: F401
from .fluid.framework import is_compiled_with_cuda # noqa: F401
from .fluid.framework import is_compiled_with_rocm # noqa: F401
from .fluid.framework import disable_signal_handler # noqa: F401
from .fluid.framework import get_flags # noqa: F401
from .fluid.framework import set_flags # noqa: F401
from .device import is_compiled_with_xpu # noqa: F401 from .device import is_compiled_with_xpu # noqa: F401
from .device import is_compiled_with_npu # noqa: F401 from .device import is_compiled_with_npu # noqa: F401
from .device import is_compiled_with_ipu # noqa: F401 from .device import is_compiled_with_ipu # noqa: F401
from .device import is_compiled_with_mlu # noqa: F401 from .device import is_compiled_with_mlu # noqa: F401
from .device import is_compiled_with_cinn # noqa: F401
from .device import is_compiled_with_cuda # noqa: F401
from .device import is_compiled_with_rocm # noqa: F401
from .device import XPUPlace # noqa: F401 from .device import XPUPlace # noqa: F401
from .fluid.dygraph.base import enable_dygraph as disable_static # noqa: F401
from .fluid.dygraph.base import disable_dygraph as enable_static # noqa: F401
from .fluid.framework import in_dygraph_mode as in_dynamic_mode # noqa: F401
from .fluid.layers import crop_tensor as crop # noqa: F401
# high-level api # high-level api
from .hapi import Model # noqa: F401 from .hapi import Model # noqa: F401
from . import callbacks # noqa: F401 from . import callbacks # noqa: F401
......
...@@ -39,4 +39,13 @@ from .io import save # noqa: F401 ...@@ -39,4 +39,13 @@ from .io import save # noqa: F401
from .io import load # noqa: F401 from .io import load # noqa: F401
from ..fluid.dygraph.parallel import DataParallel # noqa: F401 from ..fluid.dygraph.parallel import DataParallel # noqa: F401
from ..fluid import monkey_patch_variable
from ..fluid.dygraph import monkey_patch_math_varbase
from ..fluid.framework import disable_signal_handler # noqa: F401
from ..fluid.framework import get_flags # noqa: F401
from ..fluid.framework import set_flags # noqa: F401
from ..fluid.dygraph.base import enable_dygraph as disable_static # noqa: F401
from ..fluid.dygraph.base import disable_dygraph as enable_static # noqa: F401
from ..fluid.framework import in_dygraph_mode as in_dynamic_mode # noqa: F401
__all__ = [] __all__ = []
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
# TODO: import all neural network related api under this directory, # TODO: import all neural network related api under this directory,
# including layers, linear, conv, rnn etc. # including layers, linear, conv, rnn etc.
from ..fluid.dygraph.layers import Layer # noqa: F401 from ..fluid.dygraph.layers import Layer # noqa: F401
from ..fluid.dygraph.container import LayerList # noqa: F401 from ..fluid.dygraph.container import LayerList # noqa: F401
from ..fluid.dygraph.container import ParameterList # noqa: F401 from ..fluid.dygraph.container import ParameterList # noqa: F401
......
...@@ -22,11 +22,11 @@ from ...tensor.math import multiply ...@@ -22,11 +22,11 @@ from ...tensor.math import multiply
import warnings import warnings
from ...fluid.layer_helper import LayerHelper from ...fluid.layer_helper import LayerHelper
from ...fluid.framework import in_dygraph_mode, convert_np_dtype_to_dtype_ from ...fluid.framework import convert_np_dtype_to_dtype_
from ...fluid import core
from ...fluid.data_feeder import check_variable_and_dtype, check_dtype from ...fluid.data_feeder import check_variable_and_dtype, check_dtype
import paddle import paddle
from paddle import _C_ops from paddle import _C_ops, in_dynamic_mode
from paddle.framework import core
__all__ = [] __all__ = []
...@@ -61,7 +61,7 @@ def celu(x, alpha=1.0, name=None): ...@@ -61,7 +61,7 @@ def celu(x, alpha=1.0, name=None):
if alpha == 0: if alpha == 0:
raise ZeroDivisionError("alpha cannot be 0 for celu") raise ZeroDivisionError("alpha cannot be 0 for celu")
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.celu(x, 'alpha', alpha) return _C_ops.celu(x, 'alpha', alpha)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'celu') check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'celu')
...@@ -110,7 +110,7 @@ def elu(x, alpha=1.0, name=None): ...@@ -110,7 +110,7 @@ def elu(x, alpha=1.0, name=None):
# [ 1. 15.6 ]] # [ 1. 15.6 ]]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.elu(x, 'alpha', alpha) return _C_ops.elu(x, 'alpha', alpha)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'elu') check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'elu')
...@@ -174,7 +174,7 @@ def gelu(x, approximate=False, name=None): ...@@ -174,7 +174,7 @@ def gelu(x, approximate=False, name=None):
# [ 0.84119201, 1.39957154]] # [ 0.84119201, 1.39957154]]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.gelu(x, 'approximate', approximate) return _C_ops.gelu(x, 'approximate', approximate)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'gelu') check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'gelu')
...@@ -222,7 +222,7 @@ def hardshrink(x, threshold=0.5, name=None): ...@@ -222,7 +222,7 @@ def hardshrink(x, threshold=0.5, name=None):
out = F.hardshrink(x) # [-1., 0., 2.5] out = F.hardshrink(x) # [-1., 0., 2.5]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.hard_shrink(x, 'threshold', threshold) return _C_ops.hard_shrink(x, 'threshold', threshold)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'],
...@@ -273,7 +273,7 @@ def hardtanh(x, min=-1.0, max=1.0, name=None): ...@@ -273,7 +273,7 @@ def hardtanh(x, min=-1.0, max=1.0, name=None):
out = F.hardtanh(x) # [-1., 0.3, 1.] out = F.hardtanh(x) # [-1., 0.3, 1.]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.brelu(x, 't_min', min, 't_max', max) return _C_ops.brelu(x, 't_min', min, 't_max', max)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'],
...@@ -328,7 +328,7 @@ def hardsigmoid(x, slope=0.1666667, offset=0.5, name=None): ...@@ -328,7 +328,7 @@ def hardsigmoid(x, slope=0.1666667, offset=0.5, name=None):
out = F.hardsigmoid(x) # [0., 1., 0.666667] out = F.hardsigmoid(x) # [0., 1., 0.666667]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.hard_sigmoid(x, 'slope', slope, 'offset', offset) return _C_ops.hard_sigmoid(x, 'slope', slope, 'offset', offset)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'],
...@@ -382,7 +382,7 @@ def hardswish(x, name=None): ...@@ -382,7 +382,7 @@ def hardswish(x, name=None):
out = F.hardswish(x) # [0., 5., 0.666667] out = F.hardswish(x) # [0., 5., 0.666667]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.hard_swish(x) return _C_ops.hard_swish(x)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'],
...@@ -427,7 +427,7 @@ def leaky_relu(x, negative_slope=0.01, name=None): ...@@ -427,7 +427,7 @@ def leaky_relu(x, negative_slope=0.01, name=None):
out = F.leaky_relu(x) # [-0.02, 0., 1.] out = F.leaky_relu(x) # [-0.02, 0., 1.]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.leaky_relu(x, 'alpha', negative_slope) return _C_ops.leaky_relu(x, 'alpha', negative_slope)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'],
...@@ -518,7 +518,7 @@ def prelu(x, weight, data_format="NCHW", name=None): ...@@ -518,7 +518,7 @@ def prelu(x, weight, data_format="NCHW", name=None):
1], "The weight size should be equal to x input channel in prelu() when weight shape is not [1]." 1], "The weight size should be equal to x input channel in prelu() when weight shape is not [1]."
mode = 'channel' mode = 'channel'
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.prelu(x, weight, 'mode', mode, 'data_format', data_format) return _C_ops.prelu(x, weight, 'mode', mode, 'data_format', data_format)
helper = LayerHelper('prelu', **locals()) helper = LayerHelper('prelu', **locals())
...@@ -560,7 +560,7 @@ def relu(x, name=None): ...@@ -560,7 +560,7 @@ def relu(x, name=None):
out = F.relu(x) # [0., 0., 1.] out = F.relu(x) # [0., 0., 1.]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.relu(x) return _C_ops.relu(x)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'relu') check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'relu')
...@@ -605,7 +605,7 @@ def log_sigmoid(x, name=None): ...@@ -605,7 +605,7 @@ def log_sigmoid(x, name=None):
out = F.log_sigmoid(x) # [-0.313262 -0.126928 -0.0485874 -0.0181499] out = F.log_sigmoid(x) # [-0.313262 -0.126928 -0.0485874 -0.0181499]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.logsigmoid(x) return _C_ops.logsigmoid(x)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'],
...@@ -672,7 +672,7 @@ def maxout(x, groups, axis=1, name=None): ...@@ -672,7 +672,7 @@ def maxout(x, groups, axis=1, name=None):
# [0.7142536 0.88725346 0.61093384 0.38833922]]]] # [0.7142536 0.88725346 0.61093384 0.38833922]]]]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.maxout(x, 'groups', groups, 'axis', axis) return _C_ops.maxout(x, 'groups', groups, 'axis', axis)
check_variable_and_dtype(x, 'x', ['float32', 'float64'], 'maxout') check_variable_and_dtype(x, 'x', ['float32', 'float64'], 'maxout')
...@@ -721,7 +721,7 @@ def relu6(x, name=None): ...@@ -721,7 +721,7 @@ def relu6(x, name=None):
out = F.relu6(x) # [0, 0.3, 6] out = F.relu6(x) # [0, 0.3, 6]
""" """
threshold = 6.0 threshold = 6.0
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.relu6(x, 'threshold', threshold) return _C_ops.relu6(x, 'threshold', threshold)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'relu6') check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'relu6')
...@@ -780,7 +780,7 @@ def selu(x, ...@@ -780,7 +780,7 @@ def selu(x,
raise ValueError( raise ValueError(
"The alpha must be no less than zero. Received: {}.".format(alpha)) "The alpha must be no less than zero. Received: {}.".format(alpha))
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.selu(x, 'scale', scale, 'alpha', alpha) return _C_ops.selu(x, 'scale', scale, 'alpha', alpha)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'selu') check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'selu')
...@@ -821,7 +821,7 @@ def silu(x, name=None): ...@@ -821,7 +821,7 @@ def silu(x, name=None):
out = F.silu(x) # [ 0.731059, 1.761594, 2.857722, 3.928055 ] out = F.silu(x) # [ 0.731059, 1.761594, 2.857722, 3.928055 ]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.silu(x) return _C_ops.silu(x)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'silu') check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'silu')
...@@ -951,7 +951,7 @@ def softmax(x, axis=-1, dtype=None, name=None): ...@@ -951,7 +951,7 @@ def softmax(x, axis=-1, dtype=None, name=None):
dtype = convert_np_dtype_to_dtype_(dtype) dtype = convert_np_dtype_to_dtype_(dtype)
use_cudnn = True use_cudnn = True
if in_dygraph_mode(): if in_dynamic_mode():
outs_cast = x if dtype is None \ outs_cast = x if dtype is None \
else _C_ops.cast(x, 'in_dtype', x.dtype, 'out_dtype', dtype) else _C_ops.cast(x, 'in_dtype', x.dtype, 'out_dtype', dtype)
return _C_ops.softmax(outs_cast, 'axis', axis, 'use_cudnn', use_cudnn) return _C_ops.softmax(outs_cast, 'axis', axis, 'use_cudnn', use_cudnn)
...@@ -1026,7 +1026,7 @@ def softplus(x, beta=1, threshold=20, name=None): ...@@ -1026,7 +1026,7 @@ def softplus(x, beta=1, threshold=20, name=None):
x = paddle.to_tensor(np.array([-0.4, -0.2, 0.1, 0.3])) x = paddle.to_tensor(np.array([-0.4, -0.2, 0.1, 0.3]))
out = F.softplus(x) # [0.513015, 0.598139, 0.744397, 0.854355] out = F.softplus(x) # [0.513015, 0.598139, 0.744397, 0.854355]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.softplus(x, 'beta', beta, 'threshold', threshold) return _C_ops.softplus(x, 'beta', beta, 'threshold', threshold)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'],
...@@ -1081,7 +1081,7 @@ def softshrink(x, threshold=0.5, name=None): ...@@ -1081,7 +1081,7 @@ def softshrink(x, threshold=0.5, name=None):
"The threshold must be no less than zero. Received: {}.".format( "The threshold must be no less than zero. Received: {}.".format(
threshold)) threshold))
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.softshrink(x, 'lambda', threshold) return _C_ops.softshrink(x, 'lambda', threshold)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'],
...@@ -1122,7 +1122,7 @@ def softsign(x, name=None): ...@@ -1122,7 +1122,7 @@ def softsign(x, name=None):
x = paddle.to_tensor(np.array([-0.4, -0.2, 0.1, 0.3])) x = paddle.to_tensor(np.array([-0.4, -0.2, 0.1, 0.3]))
out = F.softsign(x) # [-0.285714, -0.166667, 0.0909091, 0.230769] out = F.softsign(x) # [-0.285714, -0.166667, 0.0909091, 0.230769]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.softsign(x) return _C_ops.softsign(x)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'],
...@@ -1160,7 +1160,7 @@ def swish(x, name=None): ...@@ -1160,7 +1160,7 @@ def swish(x, name=None):
out = F.swish(x) # [-0.238406, 0., 0.731059] out = F.swish(x) # [-0.238406, 0., 0.731059]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.swish(x, 'beta', 1.0) return _C_ops.swish(x, 'beta', 1.0)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'swish') check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'swish')
...@@ -1204,7 +1204,7 @@ def mish(x, name=None): ...@@ -1204,7 +1204,7 @@ def mish(x, name=None):
x = paddle.to_tensor([-5., 0., 5.]) x = paddle.to_tensor([-5., 0., 5.])
out = F.mish(x) # [-0.03357624, 0., 4.99955208] out = F.mish(x) # [-0.03357624, 0., 4.99955208]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.mish(x) return _C_ops.mish(x)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'mish') check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], 'mish')
...@@ -1240,7 +1240,7 @@ def tanhshrink(x, name=None): ...@@ -1240,7 +1240,7 @@ def tanhshrink(x, name=None):
x = paddle.to_tensor(np.array([-0.4, -0.2, 0.1, 0.3])) x = paddle.to_tensor(np.array([-0.4, -0.2, 0.1, 0.3]))
out = F.tanhshrink(x) # [-0.020051, -0.00262468, 0.000332005, 0.00868739] out = F.tanhshrink(x) # [-0.020051, -0.00262468, 0.000332005, 0.00868739]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.tanh_shrink(x) return _C_ops.tanh_shrink(x)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'],
...@@ -1286,7 +1286,7 @@ def thresholded_relu(x, threshold=1.0, name=None): ...@@ -1286,7 +1286,7 @@ def thresholded_relu(x, threshold=1.0, name=None):
out = F.thresholded_relu(x) # [2., 0., 0.] out = F.thresholded_relu(x) # [2., 0., 0.]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.thresholded_relu(x, 'threshold', threshold) return _C_ops.thresholded_relu(x, 'threshold', threshold)
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'],
...@@ -1360,7 +1360,7 @@ def log_softmax(x, axis=-1, dtype=None, name=None): ...@@ -1360,7 +1360,7 @@ def log_softmax(x, axis=-1, dtype=None, name=None):
if (dtype is not None) and (not isinstance(dtype, core.VarDesc.VarType)): if (dtype is not None) and (not isinstance(dtype, core.VarDesc.VarType)):
dtype = convert_np_dtype_to_dtype_(dtype) dtype = convert_np_dtype_to_dtype_(dtype)
if in_dygraph_mode(): if in_dynamic_mode():
if dtype is not None: if dtype is not None:
x = _C_ops.cast(x, 'in_dtype', x.dtype, 'out_dtype', dtype) x = _C_ops.cast(x, 'in_dtype', x.dtype, 'out_dtype', dtype)
return _C_ops.log_softmax(x, 'axis', axis) return _C_ops.log_softmax(x, 'axis', axis)
...@@ -1498,7 +1498,7 @@ def gumbel_softmax(x, temperature=1.0, hard=False, axis=-1, name=None): ...@@ -1498,7 +1498,7 @@ def gumbel_softmax(x, temperature=1.0, hard=False, axis=-1, name=None):
# [0.00000000, 0.00000000, 0.00000000, 0.00001258, 0.99998736, 0.00000000]] # [0.00000000, 0.00000000, 0.00000000, 0.00001258, 0.99998736, 0.00000000]]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.gumbel_softmax(x, 'temperature', temperature, 'hard', return _C_ops.gumbel_softmax(x, 'temperature', temperature, 'hard',
hard, 'axis', axis) hard, 'axis', axis)
......
...@@ -14,13 +14,11 @@ ...@@ -14,13 +14,11 @@
import warnings import warnings
import paddle import paddle
from ...fluid.framework import in_dygraph_mode, default_main_program
from paddle.fluid.layer_helper import LayerHelper from paddle.fluid.layer_helper import LayerHelper
from paddle.fluid.layers.tensor import fill_constant from paddle.fluid.layers.tensor import fill_constant
from ...tensor import concat from ...tensor import concat
from ...tensor.creation import zeros from ...tensor.creation import zeros
from paddle.static import Variable from paddle.static import Variable
from ...fluid.layers import core
from ...fluid import dygraph_utils from ...fluid import dygraph_utils
# TODO: define the common functions to build a neural network # TODO: define the common functions to build a neural network
from ...fluid.layers import unfold # noqa: F401 from ...fluid.layers import unfold # noqa: F401
...@@ -30,13 +28,17 @@ from ...tensor import clip ...@@ -30,13 +28,17 @@ from ...tensor import clip
from ...tensor import sum from ...tensor import sum
from ...tensor import sqrt from ...tensor import sqrt
from ...fluid.data_feeder import check_variable_and_dtype, check_dtype from ...fluid.data_feeder import check_variable_and_dtype, check_dtype
from ...fluid.framework import in_dygraph_mode, _varbase_creator from ...fluid.framework import _varbase_creator
from ...fluid.framework import in_dygraph_mode from ...fluid import dygraph_utils
from ...fluid import core, dygraph_utils from ...fluid import layers
from ...fluid import core, layers
from ...fluid.data_feeder import check_variable_and_dtype from ...fluid.data_feeder import check_variable_and_dtype
from paddle import _C_ops from paddle import _C_ops
from paddle.framework import in_dynamic_mode
from paddle.tensor.creation import full
from paddle.framework import core
from paddle.static import default_main_program
__all__ = [] __all__ = []
...@@ -353,11 +355,11 @@ def interpolate(x, ...@@ -353,11 +355,11 @@ def interpolate(x,
if out_shape is not None and scale is not None: if out_shape is not None and scale is not None:
raise ValueError("Only one of size or scale_factor should be defined.") raise ValueError("Only one of size or scale_factor should be defined.")
if out_shape is not None: if out_shape is not None:
if isinstance(out_shape, Variable) and not in_dygraph_mode(): if isinstance(out_shape, Variable) and not in_dynamic_mode():
out_shape.stop_gradient = True out_shape.stop_gradient = True
inputs['OutSize'] = out_shape inputs['OutSize'] = out_shape
else: else:
if in_dygraph_mode(): if in_dynamic_mode():
if isinstance(out_shape, Variable): if isinstance(out_shape, Variable):
out_shape = list(out_shape.numpy()) out_shape = list(out_shape.numpy())
for i, dim in enumerate(out_shape): for i, dim in enumerate(out_shape):
...@@ -428,7 +430,7 @@ def interpolate(x, ...@@ -428,7 +430,7 @@ def interpolate(x,
attrs['out_w'] = out_shape[2] attrs['out_w'] = out_shape[2]
else: else:
if in_dygraph_mode() and isinstance(scale, Variable): if in_dynamic_mode() and isinstance(scale, Variable):
scale = list(scale.numpy()) scale = list(scale.numpy())
if isinstance(scale, Variable): if isinstance(scale, Variable):
scale.stop_gradient = True scale.stop_gradient = True
...@@ -454,7 +456,7 @@ def interpolate(x, ...@@ -454,7 +456,7 @@ def interpolate(x,
"Attr(scale)'s type should be float, int, list, tuple, or Tensor." "Attr(scale)'s type should be float, int, list, tuple, or Tensor."
) )
if in_dygraph_mode(): if in_dynamic_mode():
attr_list = [] attr_list = []
for k, v in attrs.items(): for k, v in attrs.items():
attr_list.append(k) attr_list.append(k)
...@@ -719,7 +721,7 @@ def bilinear(x1, x2, weight, bias=None, name=None): ...@@ -719,7 +721,7 @@ def bilinear(x1, x2, weight, bias=None, name=None):
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.bilinear_tensor_product(x1, x2, weight, bias) return _C_ops.bilinear_tensor_product(x1, x2, weight, bias)
check_variable_and_dtype(x1, 'x1', ['float32', 'float64'], 'bilinear') check_variable_and_dtype(x1, 'x1', ['float32', 'float64'], 'bilinear')
...@@ -891,7 +893,7 @@ def dropout(x, ...@@ -891,7 +893,7 @@ def dropout(x,
seed = None seed = None
mode = 'downgrade_in_infer' if mode == 'downscale_in_infer' else mode #semantic transfer mode = 'downgrade_in_infer' if mode == 'downscale_in_infer' else mode #semantic transfer
if in_dygraph_mode(): if in_dynamic_mode():
if default_main_program().random_seed != 0: if default_main_program().random_seed != 0:
seed = default_main_program().random_seed seed = default_main_program().random_seed
out, mask = _C_ops.dropout( out, mask = _C_ops.dropout(
...@@ -930,7 +932,7 @@ def dropout(x, ...@@ -930,7 +932,7 @@ def dropout(x,
attrs=attrs) attrs=attrs)
return out return out
else: #sometimes called dropout_nd #TODO: optimize with c++ else: #sometimes called dropout_nd #TODO: optimize with c++
if not in_dygraph_mode(): if not in_dynamic_mode():
check_variable_and_dtype(x, 'x', ['float32', 'float64'], 'dropout') check_variable_and_dtype(x, 'x', ['float32', 'float64'], 'dropout')
dtype = x.dtype dtype = x.dtype
keep_prob = 1 - p keep_prob = 1 - p
...@@ -943,7 +945,7 @@ def dropout(x, ...@@ -943,7 +945,7 @@ def dropout(x,
#get mask shape #get mask shape
input_shape = x.shape input_shape = x.shape
if not in_dygraph_mode(): if not in_dynamic_mode():
input_shape_tensor = paddle.shape(x) input_shape_tensor = paddle.shape(x)
drop_axes = [axis] if isinstance(axis, int) else list(axis) drop_axes = [axis] if isinstance(axis, int) else list(axis)
if min(drop_axes) < 0 or max(drop_axes) > len(input_shape) - 1: if min(drop_axes) < 0 or max(drop_axes) > len(input_shape) - 1:
...@@ -954,7 +956,7 @@ def dropout(x, ...@@ -954,7 +956,7 @@ def dropout(x,
"length of axis should not be greater than dimensions of x:{}, but get length of axis: {}". "length of axis should not be greater than dimensions of x:{}, but get length of axis: {}".
format(len(input_shape), len(drop_axes))) format(len(input_shape), len(drop_axes)))
mask_shape = [1] * len(input_shape) mask_shape = [1] * len(input_shape)
if not in_dygraph_mode(): if not in_dynamic_mode():
for i in drop_axes: for i in drop_axes:
mask_shape[i] = input_shape_tensor[i] mask_shape[i] = input_shape_tensor[i]
else: else:
...@@ -964,7 +966,7 @@ def dropout(x, ...@@ -964,7 +966,7 @@ def dropout(x,
#get mask #get mask
random_tensor = paddle.uniform( random_tensor = paddle.uniform(
mask_shape, dtype='float32', min=0., max=1.0) mask_shape, dtype='float32', min=0., max=1.0)
p = layers.fill_constant(shape=[1], dtype='float32', value=p) p = full(shape=[1], fill_value=p, dtype='float32')
keep_mask = paddle.greater_equal(random_tensor, p) keep_mask = paddle.greater_equal(random_tensor, p)
scale_input = paddle.cast(scale_input, dtype) scale_input = paddle.cast(scale_input, dtype)
...@@ -1122,7 +1124,7 @@ def alpha_dropout(x, p=0.5, training=True, name=None): ...@@ -1122,7 +1124,7 @@ def alpha_dropout(x, p=0.5, training=True, name=None):
if p < 0 or p > 1: if p < 0 or p > 1:
raise ValueError("p argument should between 0 and 1") raise ValueError("p argument should between 0 and 1")
if not in_dygraph_mode(): if not in_dynamic_mode():
check_variable_and_dtype(x, 'x', ['float32', 'float64'], check_variable_and_dtype(x, 'x', ['float32', 'float64'],
'alpha_dropout') 'alpha_dropout')
...@@ -1142,16 +1144,15 @@ def alpha_dropout(x, p=0.5, training=True, name=None): ...@@ -1142,16 +1144,15 @@ def alpha_dropout(x, p=0.5, training=True, name=None):
#get mask #get mask
random_tensor = paddle.uniform( random_tensor = paddle.uniform(
input_shape, dtype='float32', min=0., max=1.0) input_shape, dtype='float32', min=0., max=1.0)
p = layers.fill_constant(shape=[1], dtype='float32', value=p) p = full(shape=[1], fill_value=p, dtype='float32')
keep_mask = paddle.greater_equal(random_tensor, p) keep_mask = paddle.greater_equal(random_tensor, p)
keep_mask = paddle.cast(keep_mask, dtype) keep_mask = paddle.cast(keep_mask, dtype)
drop_mask = paddle.subtract( drop_mask = paddle.subtract(
layers.fill_constant( full(
shape=input_shape, dtype=dtype, value=1.), shape=input_shape, fill_value=1., dtype=dtype), keep_mask)
keep_mask)
#apply mask #apply mask
b = layers.fill_constant(shape=[1], dtype=dtype, value=b) b = full(shape=[1], fill_value=b, dtype=dtype)
y = paddle.add(paddle.multiply(x, keep_mask), y = paddle.add(paddle.multiply(x, keep_mask),
paddle.scale( paddle.scale(
drop_mask, scale=alpha_p)) drop_mask, scale=alpha_p))
...@@ -1347,7 +1348,7 @@ def pad(x, pad, mode='constant', value=0, data_format="NCHW", name=None): ...@@ -1347,7 +1348,7 @@ def pad(x, pad, mode='constant', value=0, data_format="NCHW", name=None):
unsqueezed_dim = [1] unsqueezed_dim = [1]
x = unsqueeze(x, axis=unsqueezed_dim) x = unsqueeze(x, axis=unsqueezed_dim)
if in_dygraph_mode(): if in_dynamic_mode():
if isinstance(pad, Variable): if isinstance(pad, Variable):
pad = pad.numpy() pad = pad.numpy()
out = _C_ops.pad3d(x, "paddings", pad, "mode", mode, "value", value, out = _C_ops.pad3d(x, "paddings", pad, "mode", mode, "value", value,
...@@ -1519,7 +1520,7 @@ def linear(x, weight, bias=None, name=None): ...@@ -1519,7 +1520,7 @@ def linear(x, weight, bias=None, name=None):
# [0.9440598 0.9440598 0.9440598 0.9440598 ] # [0.9440598 0.9440598 0.9440598 0.9440598 ]
# [2.1077576 2.1077576 2.1077576 2.1077576 ]] # [2.1077576 2.1077576 2.1077576 2.1077576 ]]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
pre_bias = _C_ops.matmul_v2(x, weight, 'trans_x', False, 'trans_y', pre_bias = _C_ops.matmul_v2(x, weight, 'trans_x', False, 'trans_y',
False) False)
...@@ -1614,7 +1615,7 @@ def label_smooth(label, prior_dist=None, epsilon=0.1, name=None): ...@@ -1614,7 +1615,7 @@ def label_smooth(label, prior_dist=None, epsilon=0.1, name=None):
if epsilon > 1. or epsilon < 0.: if epsilon > 1. or epsilon < 0.:
raise ValueError("The value of epsilon must be between 0 and 1.") raise ValueError("The value of epsilon must be between 0 and 1.")
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.label_smooth(label, prior_dist, 'epsilon', float(epsilon)) return _C_ops.label_smooth(label, prior_dist, 'epsilon', float(epsilon))
check_variable_and_dtype(label, 'label', ['float32', 'float64'], check_variable_and_dtype(label, 'label', ['float32', 'float64'],
...@@ -1765,7 +1766,7 @@ def class_center_sample(label, num_classes, num_samples, group=None): ...@@ -1765,7 +1766,7 @@ def class_center_sample(label, num_classes, num_samples, group=None):
if (seed is None or seed == 0) and default_main_program().random_seed != 0: if (seed is None or seed == 0) and default_main_program().random_seed != 0:
seed = default_main_program().random_seed seed = default_main_program().random_seed
if in_dygraph_mode(): if in_dynamic_mode():
remapped_label, sampled_class_center = _C_ops.class_center_sample( remapped_label, sampled_class_center = _C_ops.class_center_sample(
label, 'num_classes', num_classes, 'num_samples', num_samples, label, 'num_classes', num_classes, 'num_samples', num_samples,
'ring_id', ring_id, 'nranks', nranks, 'rank', rank, 'fix_seed', 'ring_id', ring_id, 'nranks', nranks, 'rank', rank, 'fix_seed',
......
...@@ -16,9 +16,8 @@ from paddle.fluid.framework import _global_flags ...@@ -16,9 +16,8 @@ from paddle.fluid.framework import _global_flags
import numpy as np import numpy as np
from ...device import get_cudnn_version from ...device import get_cudnn_version
from ...fluid.framework import in_dygraph_mode
from ...static import Variable from ...static import Variable
from ...fluid import core, dygraph_utils, get_flags from ...fluid import dygraph_utils
from ...fluid.layers.utils import convert_to_list, _is_symmetric_padding from ...fluid.layers.utils import convert_to_list, _is_symmetric_padding
from ...fluid.data_feeder import check_variable_and_dtype from ...fluid.data_feeder import check_variable_and_dtype
from ...framework import ParamAttr from ...framework import ParamAttr
...@@ -27,6 +26,11 @@ from paddle import _C_ops ...@@ -27,6 +26,11 @@ from paddle import _C_ops
from ...tensor.manipulation import unsqueeze, squeeze from ...tensor.manipulation import unsqueeze, squeeze
from ...tensor.math import add from ...tensor.math import add
from ...fluid.layers import nn from ...fluid.layers import nn
from paddle.device import is_compiled_with_cuda
from paddle.device import is_compiled_with_rocm
from paddle.device import is_compiled_with_npu
from paddle import in_dynamic_mode
from paddle import get_flags
__all__ = [] __all__ = []
...@@ -114,7 +118,7 @@ def _conv_nd(x, ...@@ -114,7 +118,7 @@ def _conv_nd(x,
name=None): name=None):
# Due to the poor performance of NHWC, we transpose the input to NCHW. # Due to the poor performance of NHWC, we transpose the input to NCHW.
if in_dygraph_mode(): if in_dynamic_mode():
attrs = ('strides', stride, 'paddings', padding, 'dilations', dilation, attrs = ('strides', stride, 'paddings', padding, 'dilations', dilation,
'groups', groups, 'use_cudnn', use_cudnn, 'use_mkldnn', 'groups', groups, 'use_cudnn', use_cudnn, 'use_mkldnn',
use_mkldnn, 'fuse_relu_before_depthwise_conv', False, use_mkldnn, 'fuse_relu_before_depthwise_conv', False,
...@@ -342,13 +346,13 @@ def conv1d(x, ...@@ -342,13 +346,13 @@ def conv1d(x,
l_type = "conv2d" l_type = "conv2d"
# When "groups==num_channels and num_filters% num_channels == 0" using depthwise_conv2d has better performance # When "groups==num_channels and num_filters% num_channels == 0" using depthwise_conv2d has better performance
if (core.is_compiled_with_cuda() and num_channels == groups and if (is_compiled_with_cuda() and num_channels == groups and
num_channels != 1 and num_filters % num_channels == 0): num_channels != 1 and num_filters % num_channels == 0):
l_type = 'depthwise_conv2d' l_type = 'depthwise_conv2d'
use_cudnn = False use_cudnn = False
# NPU only supports depthwise_conv2d when "input_channel = output_channel = groups" # NPU only supports depthwise_conv2d when "input_channel = output_channel = groups"
if core.is_compiled_with_npu(): if is_compiled_with_npu():
if (num_channels == groups and num_channels == num_filters): if (num_channels == groups and num_channels == num_filters):
l_type = 'depthwise_conv2d' l_type = 'depthwise_conv2d'
else: else:
...@@ -357,7 +361,7 @@ def conv1d(x, ...@@ -357,7 +361,7 @@ def conv1d(x,
squeeze_aixs = -3 if channel_last else -2 squeeze_aixs = -3 if channel_last else -2
x = unsqueeze(x, axis=[squeeze_aixs]) x = unsqueeze(x, axis=[squeeze_aixs])
if in_dygraph_mode(): if in_dynamic_mode():
attrs = ('strides', stride, 'paddings', padding, 'dilations', dilation, attrs = ('strides', stride, 'paddings', padding, 'dilations', dilation,
'groups', groups, 'use_cudnn', use_cudnn, 'use_mkldnn', False, 'groups', groups, 'use_cudnn', use_cudnn, 'use_mkldnn', False,
'fuse_relu_before_depthwise_conv', False, "padding_algorithm", 'fuse_relu_before_depthwise_conv', False, "padding_algorithm",
...@@ -553,7 +557,7 @@ def conv2d(x, ...@@ -553,7 +557,7 @@ def conv2d(x,
cudnn_version = get_cudnn_version() cudnn_version = get_cudnn_version()
use_cudnn = True if (core.is_compiled_with_cuda() and use_cudnn = True if (is_compiled_with_cuda() and
cudnn_version is not None) else False cudnn_version is not None) else False
use_mkldnn = _global_flags()["FLAGS_use_mkldnn"] use_mkldnn = _global_flags()["FLAGS_use_mkldnn"]
...@@ -567,20 +571,20 @@ def conv2d(x, ...@@ -567,20 +571,20 @@ def conv2d(x,
if (num_channels == groups and num_channels != 1 and if (num_channels == groups and num_channels != 1 and
num_filters % num_channels == 0): num_filters % num_channels == 0):
l_type = 'depthwise_conv2d' l_type = 'depthwise_conv2d'
if core.is_compiled_with_rocm(): if is_compiled_with_rocm():
use_cudnn = True use_cudnn = True
else: else:
use_cudnn = False use_cudnn = False
# NPU only supports depthwise_conv2d when "input_channel = output_channel = groups" # NPU only supports depthwise_conv2d when "input_channel = output_channel = groups"
if core.is_compiled_with_npu(): if is_compiled_with_npu():
if (num_channels == groups and num_channels == num_filters): if (num_channels == groups and num_channels == num_filters):
l_type = 'depthwise_conv2d' l_type = 'depthwise_conv2d'
else: else:
l_type = 'conv2d' l_type = 'conv2d'
if (core.is_compiled_with_cuda() and get_flags("FLAGS_conv2d_disable_cudnn") if (is_compiled_with_cuda() and get_flags("FLAGS_conv2d_disable_cudnn")[
["FLAGS_conv2d_disable_cudnn"]): "FLAGS_conv2d_disable_cudnn"]):
use_cudnn = False use_cudnn = False
return _conv_nd(x, weight, bias, stride, padding, padding_algorithm, return _conv_nd(x, weight, bias, stride, padding, padding_algorithm,
...@@ -815,7 +819,7 @@ def conv1d_transpose(x, ...@@ -815,7 +819,7 @@ def conv1d_transpose(x,
x = unsqueeze(x, axis=[squeeze_axis]) x = unsqueeze(x, axis=[squeeze_axis])
weight = unsqueeze(weight, axis=[-1]) weight = unsqueeze(weight, axis=[-1])
if in_dygraph_mode(): if in_dynamic_mode():
attrs = ('output_padding', output_padding, 'output_size', output_size, attrs = ('output_padding', output_padding, 'output_size', output_size,
'strides', stride, 'paddings', padding, 'padding_algorithm', 'strides', stride, 'paddings', padding, 'padding_algorithm',
padding_algorithm, 'dilations', dilation, 'groups', groups, padding_algorithm, 'dilations', dilation, 'groups', groups,
...@@ -1026,7 +1030,7 @@ def conv2d_transpose(x, ...@@ -1026,7 +1030,7 @@ def conv2d_transpose(x,
cudnn_version = get_cudnn_version() cudnn_version = get_cudnn_version()
use_cudnn = True if (core.is_compiled_with_cuda() and use_cudnn = True if (is_compiled_with_cuda() and
cudnn_version is not None) else False cudnn_version is not None) else False
# update attrs # update attrs
...@@ -1057,7 +1061,7 @@ def conv2d_transpose(x, ...@@ -1057,7 +1061,7 @@ def conv2d_transpose(x,
op_type = 'depthwise_conv2d_transpose' op_type = 'depthwise_conv2d_transpose'
use_cudnn = False use_cudnn = False
if in_dygraph_mode(): if in_dynamic_mode():
attrs = ('output_padding', output_padding, 'output_size', output_size, attrs = ('output_padding', output_padding, 'output_size', output_size,
'strides', stride, 'paddings', padding, 'padding_algorithm', 'strides', stride, 'paddings', padding, 'padding_algorithm',
padding_algorithm, 'dilations', dilation, 'groups', groups, padding_algorithm, 'dilations', dilation, 'groups', groups,
...@@ -1242,7 +1246,7 @@ def conv3d(x, ...@@ -1242,7 +1246,7 @@ def conv3d(x,
groups)) groups))
cudnn_version = get_cudnn_version() cudnn_version = get_cudnn_version()
use_cudnn = True if (core.is_compiled_with_cuda() and use_cudnn = True if (is_compiled_with_cuda() and
cudnn_version is not None) else False cudnn_version is not None) else False
padding, padding_algorithm = _update_padding_nd(padding, channel_last, 3) padding, padding_algorithm = _update_padding_nd(padding, channel_last, 3)
...@@ -1458,13 +1462,13 @@ def conv3d_transpose(x, ...@@ -1458,13 +1462,13 @@ def conv3d_transpose(x,
cudnn_version = get_cudnn_version() cudnn_version = get_cudnn_version()
#TODO(LielinJiang): whether to use cudnn according to the version of cudnn #TODO(LielinJiang): whether to use cudnn according to the version of cudnn
use_cudnn = True if (core.is_compiled_with_cuda() and use_cudnn = True if (is_compiled_with_cuda() and
cudnn_version is not None) else False cudnn_version is not None) else False
op_type = 'conv3d_transpose' op_type = 'conv3d_transpose'
data_format_ = "NHWC" if channel_last else "NCHW" data_format_ = "NHWC" if channel_last else "NCHW"
if in_dygraph_mode(): if in_dynamic_mode():
attrs = ('output_padding', output_padding, 'output_size', output_size, attrs = ('output_padding', output_padding, 'output_size', output_size,
'paddings', padding, "padding_algorithm", padding_algorithm, 'paddings', padding, "padding_algorithm", padding_algorithm,
'strides', stride, 'dilations', dilation, 'groups', groups, 'strides', stride, 'dilations', dilation, 'groups', groups,
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
import numpy as np import numpy as np
from ...fluid.data_feeder import check_dtype from ...fluid.data_feeder import check_dtype
from ...fluid.layer_helper import LayerHelper from ...fluid.layer_helper import LayerHelper
from ...fluid.framework import in_dygraph_mode
from ...static import Variable from ...static import Variable
from ...tensor.creation import assign from ...tensor.creation import assign
from ...fluid import core, dygraph_utils from ...fluid import dygraph_utils
from ...fluid.layers.layer_function_generator import templatedoc from ...fluid.layers.layer_function_generator import templatedoc
from ...fluid.layers.sequence_lod import sequence_mask from ...fluid.layers.sequence_lod import sequence_mask #noqa: F401
from paddle import in_dynamic_mode
__all__ = [] __all__ = []
...@@ -125,7 +125,7 @@ def diag_embed(input, offset=0, dim1=-2, dim2=-1): ...@@ -125,7 +125,7 @@ def diag_embed(input, offset=0, dim1=-2, dim2=-1):
"dim1 and dim2 cannot be the same dimension." \ "dim1 and dim2 cannot be the same dimension." \
"But received dim1 = %d, dim2 = %d\n"%(dim1, dim2) "But received dim1 = %d, dim2 = %d\n"%(dim1, dim2)
if not in_dygraph_mode(): if not in_dynamic_mode():
__check_input(input, offset, dim1, dim2) __check_input(input, offset, dim1, dim2)
helper = LayerHelper("diag_embed", **locals()) helper = LayerHelper("diag_embed", **locals())
......
...@@ -14,12 +14,11 @@ ...@@ -14,12 +14,11 @@
from __future__ import print_function from __future__ import print_function
import warnings import warnings
from ...fluid.framework import in_dygraph_mode
from ...static import Variable from ...static import Variable
from ...fluid.layer_helper import LayerHelper from ...fluid.layer_helper import LayerHelper
from ...fluid.layers import core
from ...fluid.data_feeder import check_variable_and_dtype, check_dtype from ...fluid.data_feeder import check_variable_and_dtype, check_dtype
from paddle import _C_ops from paddle import _C_ops
from paddle import in_dynamic_mode
__all__ = [] __all__ = []
...@@ -87,7 +86,7 @@ def one_hot(x, num_classes, name=None): ...@@ -87,7 +86,7 @@ def one_hot(x, num_classes, name=None):
""" """
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.one_hot_v2(x, 'depth', num_classes, 'allow_out_of_range', return _C_ops.one_hot_v2(x, 'depth', num_classes, 'allow_out_of_range',
False) False)
else: else:
...@@ -196,7 +195,7 @@ def embedding(x, weight, padding_idx=None, sparse=False, name=None): ...@@ -196,7 +195,7 @@ def embedding(x, weight, padding_idx=None, sparse=False, name=None):
raise ValueError("padding_idx must be within [-{}, {})".format( raise ValueError("padding_idx must be within [-{}, {})".format(
weight.shape[0], weight.shape[0])) weight.shape[0], weight.shape[0]))
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.lookup_table_v2( return _C_ops.lookup_table_v2(
weight, x, 'is_sparse', sparse, 'is_distributed', False, weight, x, 'is_sparse', sparse, 'is_distributed', False,
'remote_prefetch', False, 'padding_idx', padding_idx) 'remote_prefetch', False, 'padding_idx', padding_idx)
......
...@@ -14,15 +14,12 @@ ...@@ -14,15 +14,12 @@
# limitations under the License. # limitations under the License.
import paddle import paddle
from ...fluid.layer_helper import LayerHelper
from ...fluid.data_feeder import check_variable_and_dtype from ...fluid.data_feeder import check_variable_and_dtype
import paddle.fluid as fluid
# TODO: define loss functions of neural network # TODO: define loss functions of neural network
import numpy as np import numpy as np
import paddle import paddle
import paddle.fluid as fluid import paddle.fluid as fluid
from ...fluid.framework import core, in_dygraph_mode
from ...fluid.layers.nn import _elementwise_op_in_dygraph from ...fluid.layers.nn import _elementwise_op_in_dygraph
from ...fluid.layers import dice_loss # noqa: F401 from ...fluid.layers import dice_loss # noqa: F401
from ...fluid.layers import log_loss # noqa: F401 from ...fluid.layers import log_loss # noqa: F401
...@@ -34,11 +31,12 @@ from ...fluid.layers import square_error_cost # noqa: F401 ...@@ -34,11 +31,12 @@ from ...fluid.layers import square_error_cost # noqa: F401
from ...fluid.layers import edit_distance # noqa: F401 from ...fluid.layers import edit_distance # noqa: F401
from ...fluid.layers import huber_loss from ...fluid.layers import huber_loss
from ...fluid.layer_helper import LayerHelper from ...fluid.layer_helper import LayerHelper
from ...fluid.framework import in_dygraph_mode
from ...fluid.framework import _varbase_creator from ...fluid.framework import _varbase_creator
from ...static import Variable from ...static import Variable
from paddle.utils import deprecated from paddle.utils import deprecated
from paddle import _C_ops from paddle import _C_ops
from paddle import in_dynamic_mode
from paddle.framework import core
__all__ = [] __all__ = []
...@@ -115,7 +113,7 @@ def binary_cross_entropy(input, label, weight=None, reduction='mean', ...@@ -115,7 +113,7 @@ def binary_cross_entropy(input, label, weight=None, reduction='mean',
"'mean' or 'none', but received %s, which is not allowed." % "'mean' or 'none', but received %s, which is not allowed." %
reduction) reduction)
if in_dygraph_mode(): if in_dynamic_mode():
out = _C_ops.bce_loss(input, label) out = _C_ops.bce_loss(input, label)
if weight is not None: if weight is not None:
out = _C_ops.elementwise_mul(out, weight, 'axis', -1) out = _C_ops.elementwise_mul(out, weight, 'axis', -1)
...@@ -249,7 +247,7 @@ def binary_cross_entropy_with_logits(logit, ...@@ -249,7 +247,7 @@ def binary_cross_entropy_with_logits(logit,
"should be 'sum', 'mean' or 'none', but received %s, which is not allowed." "should be 'sum', 'mean' or 'none', but received %s, which is not allowed."
% reduction) % reduction)
if in_dygraph_mode(): if in_dynamic_mode():
one = _varbase_creator(dtype=logit.dtype) one = _varbase_creator(dtype=logit.dtype)
_C_ops.fill_constant(one, 'value', _C_ops.fill_constant(one, 'value',
float(1.0), 'force_cpu', False, 'dtype', one.dtype, float(1.0), 'force_cpu', False, 'dtype', one.dtype,
...@@ -284,8 +282,7 @@ def binary_cross_entropy_with_logits(logit, ...@@ -284,8 +282,7 @@ def binary_cross_entropy_with_logits(logit,
out = paddle.fluid.layers.sigmoid_cross_entropy_with_logits( out = paddle.fluid.layers.sigmoid_cross_entropy_with_logits(
logit, label, name=sigmoid_name) logit, label, name=sigmoid_name)
one = paddle.fluid.layers.fill_constant( one = paddle.full(shape=[1], fill_value=1.0, dtype=logit.dtype)
shape=[1], value=1.0, dtype=logit.dtype)
if pos_weight is not None: if pos_weight is not None:
fluid.data_feeder.check_variable_and_dtype( fluid.data_feeder.check_variable_and_dtype(
pos_weight, 'pos_weight', ['float32', 'float64'], pos_weight, 'pos_weight', ['float32', 'float64'],
...@@ -392,7 +389,7 @@ def hsigmoid_loss(input, ...@@ -392,7 +389,7 @@ def hsigmoid_loss(input,
# [2.2407534]] # [2.2407534]]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
out, _, _ = _C_ops.hierarchical_sigmoid( out, _, _ = _C_ops.hierarchical_sigmoid(
input, weight, label, path_table, path_code, bias, 'num_classes', input, weight, label, path_table, path_code, bias, 'num_classes',
num_classes, 'is_sparse', is_sparse, 'remote_prefetch', is_sparse) num_classes, 'is_sparse', is_sparse, 'remote_prefetch', is_sparse)
...@@ -569,7 +566,7 @@ def margin_ranking_loss(input, ...@@ -569,7 +566,7 @@ def margin_ranking_loss(input,
raise ValueError( raise ValueError(
"The value of 'reduction' in MarginRankingLoss should be 'sum', 'mean' or 'none', but " "The value of 'reduction' in MarginRankingLoss should be 'sum', 'mean' or 'none', but "
"received %s, which is not allowed." % reduction) "received %s, which is not allowed." % reduction)
if fluid.framework.in_dygraph_mode(): if in_dynamic_mode():
out = _C_ops.elementwise_sub(other, input) out = _C_ops.elementwise_sub(other, input)
out = _C_ops.elementwise_mul(out, label) out = _C_ops.elementwise_mul(out, label)
if margin != 0.0: if margin != 0.0:
...@@ -595,8 +592,7 @@ def margin_ranking_loss(input, ...@@ -595,8 +592,7 @@ def margin_ranking_loss(input,
if margin != 0.0: if margin != 0.0:
margin_var = out.block.create_var(dtype=out.dtype) margin_var = out.block.create_var(dtype=out.dtype)
paddle.fluid.layers.fill_constant( margin_var = paddle.full(shape=[1], fill_value=margin, dtype=out.dtype)
[1], out.dtype, margin, out=margin_var)
out = paddle.add(out, margin_var) out = paddle.add(out, margin_var)
result_out = helper.create_variable_for_type_inference(input.dtype) result_out = helper.create_variable_for_type_inference(input.dtype)
...@@ -686,7 +682,7 @@ def l1_loss(input, label, reduction='mean', name=None): ...@@ -686,7 +682,7 @@ def l1_loss(input, label, reduction='mean', name=None):
"The value of 'reduction' in L1Loss should be 'sum', 'mean' or 'none', but " "The value of 'reduction' in L1Loss should be 'sum', 'mean' or 'none', but "
"received %s, which is not allowed." % reduction) "received %s, which is not allowed." % reduction)
if in_dygraph_mode(): if in_dynamic_mode():
unreduced = _elementwise_op_in_dygraph( unreduced = _elementwise_op_in_dygraph(
input, label, axis=-1, act='abs', op_name='elementwise_sub') input, label, axis=-1, act='abs', op_name='elementwise_sub')
if reduction == 'mean': if reduction == 'mean':
...@@ -776,7 +772,7 @@ def nll_loss(input, ...@@ -776,7 +772,7 @@ def nll_loss(input,
input_dims)) input_dims))
n = input_shape[0] n = input_shape[0]
c = input_shape[1] c = input_shape[1]
if in_dygraph_mode(): if in_dynamic_mode():
if input_dims != 2 and input_dims != 4: if input_dims != 2 and input_dims != 4:
input, _ = _C_ops.reshape2(input, None, 'shape', [n, c, 1, -1]) input, _ = _C_ops.reshape2(input, None, 'shape', [n, c, 1, -1])
label, _ = _C_ops.reshape2(label, None, 'shape', [n, 1, -1]) label, _ = _C_ops.reshape2(label, None, 'shape', [n, 1, -1])
...@@ -995,7 +991,7 @@ def mse_loss(input, label, reduction='mean', name=None): ...@@ -995,7 +991,7 @@ def mse_loss(input, label, reduction='mean', name=None):
"'reduction' in 'mse_loss' should be 'sum', 'mean' or 'none', " "'reduction' in 'mse_loss' should be 'sum', 'mean' or 'none', "
"but received {}.".format(reduction)) "but received {}.".format(reduction))
if not paddle.fluid.framework.in_dygraph_mode(): if not in_dynamic_mode():
paddle.fluid.data_feeder.check_variable_and_dtype( paddle.fluid.data_feeder.check_variable_and_dtype(
input, 'input', ['float32', 'float64'], 'mse_loss') input, 'input', ['float32', 'float64'], 'mse_loss')
paddle.fluid.data_feeder.check_variable_and_dtype( paddle.fluid.data_feeder.check_variable_and_dtype(
...@@ -1099,7 +1095,7 @@ def ctc_loss(log_probs, ...@@ -1099,7 +1095,7 @@ def ctc_loss(log_probs,
loss_out = fluid.layers.warpctc(log_probs, labels, blank, norm_by_times, loss_out = fluid.layers.warpctc(log_probs, labels, blank, norm_by_times,
input_lengths, label_lengths) input_lengths, label_lengths)
loss_out = fluid.layers.squeeze(loss_out, [-1]) loss_out = paddle.squeeze(loss_out, [-1])
assert reduction in ['mean', 'sum', 'none'] assert reduction in ['mean', 'sum', 'none']
if reduction == 'mean': if reduction == 'mean':
loss_out = paddle.mean(loss_out / label_lengths) loss_out = paddle.mean(loss_out / label_lengths)
...@@ -1319,7 +1315,7 @@ def margin_cross_entropy(logits, ...@@ -1319,7 +1315,7 @@ def margin_cross_entropy(logits,
if input_dims - 1 == label_dims: if input_dims - 1 == label_dims:
label = paddle.unsqueeze(label, axis=-1) label = paddle.unsqueeze(label, axis=-1)
if in_dygraph_mode(): if in_dynamic_mode():
softmax, loss = _C_ops.margin_cross_entropy( softmax, loss = _C_ops.margin_cross_entropy(
logits, label, 'ring_id', ring_id, 'rank', rank, 'nranks', nranks, logits, label, 'ring_id', ring_id, 'rank', rank, 'nranks', nranks,
'margin1', margin1, 'margin2', margin2, 'margin3', margin3, 'scale', 'margin1', margin1, 'margin2', margin2, 'margin3', margin3, 'scale',
...@@ -1664,7 +1660,7 @@ def cross_entropy(input, ...@@ -1664,7 +1660,7 @@ def cross_entropy(input,
(got nput_dims{}, label_dims{})'.format(input_dims, label_dims)) (got nput_dims{}, label_dims{})'.format(input_dims, label_dims))
if input_dims - 1 == label_dims: if input_dims - 1 == label_dims:
label = paddle.unsqueeze(label, axis=axis) label = paddle.unsqueeze(label, axis=axis)
if in_dygraph_mode(): if in_dynamic_mode():
if soft_label == False: if soft_label == False:
valid_label = paddle.cast( valid_label = paddle.cast(
label != ignore_index, dtype=label.dtype) * label label != ignore_index, dtype=label.dtype) * label
...@@ -1978,7 +1974,7 @@ def sigmoid_focal_loss(logit, ...@@ -1978,7 +1974,7 @@ def sigmoid_focal_loss(logit,
"Expected one dimension of normalizer in sigmoid_focal_loss but got {}.". "Expected one dimension of normalizer in sigmoid_focal_loss but got {}.".
format(normalizer_dims)) format(normalizer_dims))
if in_dygraph_mode(): if in_dynamic_mode():
one = _varbase_creator(dtype=logit.dtype) one = _varbase_creator(dtype=logit.dtype)
_C_ops.fill_constant(one, 'value', _C_ops.fill_constant(one, 'value',
float(1.0), 'force_cpu', False, 'dtype', one.dtype, float(1.0), 'force_cpu', False, 'dtype', one.dtype,
...@@ -2025,7 +2021,7 @@ def sigmoid_focal_loss(logit, ...@@ -2025,7 +2021,7 @@ def sigmoid_focal_loss(logit,
loss = paddle.nn.functional.binary_cross_entropy_with_logits( loss = paddle.nn.functional.binary_cross_entropy_with_logits(
logit, label, reduction='none', name=bce_name) logit, label, reduction='none', name=bce_name)
pred = fluid.layers.sigmoid(logit) pred = paddle.nn.functional.sigmoid(logit)
p_t = pred * label + (1 - pred) * (1 - label) p_t = pred * label + (1 - pred) * (1 - label)
alpha_t = alpha * label + (1 - alpha) * (1 - label) alpha_t = alpha * label + (1 - alpha) * (1 - label)
...@@ -2125,7 +2121,7 @@ def hinge_embedding_loss(input, label, margin=1.0, reduction='mean', name=None): ...@@ -2125,7 +2121,7 @@ def hinge_embedding_loss(input, label, margin=1.0, reduction='mean', name=None):
"'reduction' in 'hinge_embedding_loss' should be 'sum', 'mean' or 'none', " "'reduction' in 'hinge_embedding_loss' should be 'sum', 'mean' or 'none', "
"but received {}.".format(reduction)) "but received {}.".format(reduction))
if not paddle.fluid.framework.in_dygraph_mode(): if not in_dynamic_mode():
check_variable_and_dtype(input, 'input', ['float32', 'float64'], check_variable_and_dtype(input, 'input', ['float32', 'float64'],
'hinge_embedding_loss') 'hinge_embedding_loss')
check_variable_and_dtype(label, 'label', ['float32', 'float64'], check_variable_and_dtype(label, 'label', ['float32', 'float64'],
......
...@@ -17,13 +17,13 @@ import paddle ...@@ -17,13 +17,13 @@ import paddle
import paddle.fluid as fluid import paddle.fluid as fluid
from ...fluid.data_feeder import check_variable_and_dtype, check_type from ...fluid.data_feeder import check_variable_and_dtype, check_type
from ...fluid.layer_helper import LayerHelper from ...fluid.layer_helper import LayerHelper
from ...fluid.framework import in_dygraph_mode, core
from ...framework import create_parameter from ...framework import create_parameter
from ..initializer import Constant from ..initializer import Constant
from ...framework import ParamAttr from ...framework import ParamAttr
from ...fluid import core, dygraph_utils from ...fluid import dygraph_utils
import numbers import numbers
from paddle import _C_ops from paddle import _C_ops
from paddle import in_dynamic_mode
__all__ = [] __all__ = []
...@@ -78,7 +78,7 @@ def normalize(x, p=2, axis=1, epsilon=1e-12, name=None): ...@@ -78,7 +78,7 @@ def normalize(x, p=2, axis=1, epsilon=1e-12, name=None):
# [[0. 0.24253564 0.37139067] # [[0. 0.24253564 0.37139067]
# [1. 0.97014254 0.9284767 ]] # [1. 0.97014254 0.9284767 ]]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
eps = fluid.dygraph.base.to_variable([epsilon], dtype=x.dtype) eps = fluid.dygraph.base.to_variable([epsilon], dtype=x.dtype)
out = _C_ops.p_norm(x, 'axis', axis, 'porder', out = _C_ops.p_norm(x, 'axis', axis, 'porder',
float(p), 'keepdim', True, 'epsilon', epsilon) float(p), 'keepdim', True, 'epsilon', epsilon)
...@@ -104,7 +104,7 @@ def normalize(x, p=2, axis=1, epsilon=1e-12, name=None): ...@@ -104,7 +104,7 @@ def normalize(x, p=2, axis=1, epsilon=1e-12, name=None):
helper.append_op( helper.append_op(
type='p_norm', inputs={'X': x}, outputs={'Out': out}, attrs=attrs) type='p_norm', inputs={'X': x}, outputs={'Out': out}, attrs=attrs)
eps = out.block.create_var(dtype=out.dtype) eps = out.block.create_var(dtype=out.dtype)
paddle.fluid.layers.fill_constant([1], out.dtype, epsilon, out=eps) eps = paddle.full(shape=[1], fill_value=epsilon, dtype=out.dtype)
return paddle.divide(x, paddle.maximum(out, eps), name=name) return paddle.divide(x, paddle.maximum(out, eps), name=name)
...@@ -180,7 +180,7 @@ def batch_norm(x, ...@@ -180,7 +180,7 @@ def batch_norm(x,
else: else:
trainable_statistics = not use_global_stats trainable_statistics = not use_global_stats
if in_dygraph_mode(): if in_dynamic_mode():
# for dygraph need tuple # for dygraph need tuple
attrs = ("momentum", momentum, "epsilon", epsilon, "is_test", attrs = ("momentum", momentum, "epsilon", epsilon, "is_test",
not training, "data_layout", data_format, "use_mkldnn", False, not training, "data_layout", data_format, "use_mkldnn", False,
...@@ -301,7 +301,7 @@ def layer_norm(x, ...@@ -301,7 +301,7 @@ def layer_norm(x,
str_normalized_shape[ str_normalized_shape[
1:] + ', but got input shape ' + str(input_shape)) 1:] + ', but got input shape ' + str(input_shape))
if in_dygraph_mode(): if in_dynamic_mode():
pre_act, _, _ = _C_ops.layer_norm(x, weight, bias, 'epsilon', epsilon, pre_act, _, _ = _C_ops.layer_norm(x, weight, bias, 'epsilon', epsilon,
'begin_norm_axis', begin_norm_axis) 'begin_norm_axis', begin_norm_axis)
return dygraph_utils._append_activation_in_dygraph(pre_act, act=None) return dygraph_utils._append_activation_in_dygraph(pre_act, act=None)
...@@ -385,7 +385,7 @@ def instance_norm(x, ...@@ -385,7 +385,7 @@ def instance_norm(x,
""" """
if in_dygraph_mode(): if in_dynamic_mode():
out, _, _ = _C_ops.instance_norm(x, weight, bias, "epsilon", eps, out, _, _ = _C_ops.instance_norm(x, weight, bias, "epsilon", eps,
"momentum", momentum, "data_format", "momentum", momentum, "data_format",
data_format) data_format)
...@@ -474,7 +474,7 @@ def local_response_norm(x, ...@@ -474,7 +474,7 @@ def local_response_norm(x,
y = paddle.nn.functional.local_response_norm(x, size=5) y = paddle.nn.functional.local_response_norm(x, size=5)
print(y.shape) # [3, 3, 112, 112] print(y.shape) # [3, 3, 112, 112]
""" """
if not in_dygraph_mode(): if not in_dynamic_mode():
check_variable_and_dtype(x, 'x', ['float32'], 'local_response_norm') check_variable_and_dtype(x, 'x', ['float32'], 'local_response_norm')
if data_format not in ['NCL', 'NLC', 'NCHW', 'NHWC', 'NCDHW', 'NDHWC']: if data_format not in ['NCL', 'NLC', 'NCHW', 'NHWC', 'NCDHW', 'NDHWC']:
raise ValueError( raise ValueError(
......
...@@ -13,13 +13,11 @@ ...@@ -13,13 +13,11 @@
# limitations under the License. # limitations under the License.
# TODO: define pooling functions # TODO: define pooling functions
from ...fluid import core
from ...fluid.framework import in_dygraph_mode
from ...fluid.layers import utils, LayerHelper from ...fluid.layers import utils, LayerHelper
from ...tensor.manipulation import unsqueeze, squeeze from ...tensor.manipulation import unsqueeze, squeeze
from ...fluid.data_feeder import check_type, check_variable_and_dtype from ...fluid.data_feeder import check_type, check_variable_and_dtype
from paddle import _C_ops from paddle import _C_ops
from paddle import _C_ops from paddle import in_dynamic_mode
__all__ = [] __all__ = []
...@@ -210,7 +208,7 @@ def avg_pool1d(x, ...@@ -210,7 +208,7 @@ def avg_pool1d(x,
""" """
"""NCL to NCHW""" """NCL to NCHW"""
data_format = "NCHW" data_format = "NCHW"
if not in_dygraph_mode(): if not in_dynamic_mode():
check_variable_and_dtype(x, 'x', ['float32', 'float64'], 'avg_pool1d') check_variable_and_dtype(x, 'x', ['float32', 'float64'], 'avg_pool1d')
_check_input(x, 3) _check_input(x, 3)
x = unsqueeze(x, [2]) x = unsqueeze(x, [2])
...@@ -232,7 +230,7 @@ def avg_pool1d(x, ...@@ -232,7 +230,7 @@ def avg_pool1d(x,
# use 2d to implenment 1d should expand padding in advance. # use 2d to implenment 1d should expand padding in advance.
padding = _expand_low_nd_padding(padding) padding = _expand_low_nd_padding(padding)
if in_dygraph_mode(): if in_dynamic_mode():
output = _C_ops.pool2d( output = _C_ops.pool2d(
x, 'pooling_type', 'avg', 'ksize', kernel_size, 'global_pooling', x, 'pooling_type', 'avg', 'ksize', kernel_size, 'global_pooling',
False, 'strides', stride, 'paddings', padding, 'padding_algorithm', False, 'strides', stride, 'paddings', padding, 'padding_algorithm',
...@@ -346,7 +344,7 @@ def avg_pool2d(x, ...@@ -346,7 +344,7 @@ def avg_pool2d(x,
padding, padding_algorithm = _update_padding_nd( padding, padding_algorithm = _update_padding_nd(
padding, 2, channel_last, ceil_mode=ceil_mode) padding, 2, channel_last, ceil_mode=ceil_mode)
if in_dygraph_mode(): if in_dynamic_mode():
output = _C_ops.pool2d(x, 'pooling_type', 'avg', 'ksize', kernel_size, output = _C_ops.pool2d(x, 'pooling_type', 'avg', 'ksize', kernel_size,
'global_pooling', False, 'padding_algorithm', 'global_pooling', False, 'padding_algorithm',
padding_algorithm, 'strides', stride, 'paddings', padding_algorithm, 'strides', stride, 'paddings',
...@@ -468,7 +466,7 @@ def avg_pool3d(x, ...@@ -468,7 +466,7 @@ def avg_pool3d(x,
_check_value_limitation(kernel_size, "kernel_size", min_limit=1e-3) _check_value_limitation(kernel_size, "kernel_size", min_limit=1e-3)
_check_value_limitation(stride, "stride", min_limit=1e-3) _check_value_limitation(stride, "stride", min_limit=1e-3)
if in_dygraph_mode(): if in_dynamic_mode():
output = _C_ops.pool3d( output = _C_ops.pool3d(
x, 'pooling_type', 'avg', 'ksize', kernel_size, 'strides', stride, x, 'pooling_type', 'avg', 'ksize', kernel_size, 'strides', stride,
'paddings', padding, 'global_pooling', False, 'padding_algorithm', 'paddings', padding, 'global_pooling', False, 'padding_algorithm',
...@@ -571,7 +569,7 @@ def max_pool1d(x, ...@@ -571,7 +569,7 @@ def max_pool1d(x,
""" """
"""NCL to NCHW""" """NCL to NCHW"""
data_format = "NCHW" data_format = "NCHW"
if not in_dygraph_mode(): if not in_dynamic_mode():
check_variable_and_dtype(x, 'x', ['float32', 'float64'], 'max_pool1d') check_variable_and_dtype(x, 'x', ['float32', 'float64'], 'max_pool1d')
_check_input(x, 3) _check_input(x, 3)
x = unsqueeze(x, [2]) x = unsqueeze(x, [2])
...@@ -587,7 +585,7 @@ def max_pool1d(x, ...@@ -587,7 +585,7 @@ def max_pool1d(x,
# use 2d to implenment 1d should expand padding in advance. # use 2d to implenment 1d should expand padding in advance.
padding = _expand_low_nd_padding(padding) padding = _expand_low_nd_padding(padding)
if in_dygraph_mode(): if in_dynamic_mode():
if return_mask: if return_mask:
pool_out = _C_ops.max_pool2d_with_index( pool_out = _C_ops.max_pool2d_with_index(
x, 'ksize', kernel_size, 'global_pooling', False, 'strides', x, 'ksize', kernel_size, 'global_pooling', False, 'strides',
...@@ -746,7 +744,7 @@ def max_unpool1d(x, ...@@ -746,7 +744,7 @@ def max_unpool1d(x,
output_size = _unpool_output_size(x, kernel_size, stride, padding, output_size = _unpool_output_size(x, kernel_size, stride, padding,
output_size) output_size)
if in_dygraph_mode(): if in_dynamic_mode():
output = _C_ops.unpool(x, indices, 'unpooling_type', 'max', 'ksize', output = _C_ops.unpool(x, indices, 'unpooling_type', 'max', 'ksize',
kernel_size, 'strides', stride, 'paddings', kernel_size, 'strides', stride, 'paddings',
padding, "output_size", output_size, padding, "output_size", output_size,
...@@ -861,7 +859,7 @@ def max_unpool2d(x, ...@@ -861,7 +859,7 @@ def max_unpool2d(x,
output_size = _unpool_output_size(x, kernel_size, stride, padding, output_size = _unpool_output_size(x, kernel_size, stride, padding,
output_size) output_size)
if in_dygraph_mode(): if in_dynamic_mode():
output = _C_ops.unpool(x, indices, 'unpooling_type', 'max', 'ksize', output = _C_ops.unpool(x, indices, 'unpooling_type', 'max', 'ksize',
kernel_size, 'strides', stride, 'paddings', kernel_size, 'strides', stride, 'paddings',
padding, "output_size", output_size, padding, "output_size", output_size,
...@@ -973,7 +971,7 @@ def max_unpool3d(x, ...@@ -973,7 +971,7 @@ def max_unpool3d(x,
output_size = _unpool_output_size(x, kernel_size, stride, padding, output_size = _unpool_output_size(x, kernel_size, stride, padding,
output_size) output_size)
if in_dygraph_mode(): if in_dynamic_mode():
output = _C_ops.unpool3d(x, indices, 'unpooling_type', 'max', 'ksize', output = _C_ops.unpool3d(x, indices, 'unpooling_type', 'max', 'ksize',
kernel_size, 'strides', stride, 'paddings', kernel_size, 'strides', stride, 'paddings',
padding, "output_size", output_size, padding, "output_size", output_size,
...@@ -1029,7 +1027,7 @@ def max_pool2d(x, ...@@ -1029,7 +1027,7 @@ def max_pool2d(x,
"When setting return_mask to true, data_format must be set to NCHW in API:max_pool2d" "When setting return_mask to true, data_format must be set to NCHW in API:max_pool2d"
) )
if in_dygraph_mode(): if in_dynamic_mode():
if return_mask: if return_mask:
output = _C_ops.max_pool2d_with_index( output = _C_ops.max_pool2d_with_index(
x, 'ksize', kernel_size, 'global_pooling', False, 'strides', x, 'ksize', kernel_size, 'global_pooling', False, 'strides',
...@@ -1160,7 +1158,7 @@ def max_pool3d(x, ...@@ -1160,7 +1158,7 @@ def max_pool3d(x,
"When setting return_mask to true, data_format must be set to NCDHW in API:max_pool3d" "When setting return_mask to true, data_format must be set to NCDHW in API:max_pool3d"
) )
if in_dygraph_mode(): if in_dynamic_mode():
if return_mask: if return_mask:
output = _C_ops.max_pool3d_with_index( output = _C_ops.max_pool3d_with_index(
x, 'pooling_type', 'max', 'ksize', kernel_size, 'strides', x, 'pooling_type', 'max', 'ksize', kernel_size, 'strides',
...@@ -1250,7 +1248,7 @@ def adaptive_avg_pool1d(x, output_size, name=None): ...@@ -1250,7 +1248,7 @@ def adaptive_avg_pool1d(x, output_size, name=None):
# pool_out shape: [1, 3, 16]) # pool_out shape: [1, 3, 16])
""" """
pool_type = 'avg' pool_type = 'avg'
if not in_dygraph_mode(): if not in_dynamic_mode():
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'],
'adaptive_pool2d') 'adaptive_pool2d')
check_type(output_size, 'pool_size', (int), 'adaptive_pool1d') check_type(output_size, 'pool_size', (int), 'adaptive_pool1d')
...@@ -1258,7 +1256,7 @@ def adaptive_avg_pool1d(x, output_size, name=None): ...@@ -1258,7 +1256,7 @@ def adaptive_avg_pool1d(x, output_size, name=None):
pool_size = [1] + utils.convert_to_list(output_size, 1, 'pool_size') pool_size = [1] + utils.convert_to_list(output_size, 1, 'pool_size')
x = unsqueeze(x, [2]) x = unsqueeze(x, [2])
if in_dygraph_mode(): if in_dynamic_mode():
pool_out = _C_ops.pool2d(x, 'pooling_type', pool_type, 'ksize', pool_out = _C_ops.pool2d(x, 'pooling_type', pool_type, 'ksize',
pool_size, 'adaptive', True) pool_size, 'adaptive', True)
return squeeze(pool_out, [2]) return squeeze(pool_out, [2])
...@@ -1333,7 +1331,7 @@ def adaptive_avg_pool2d(x, output_size, data_format='NCHW', name=None): ...@@ -1333,7 +1331,7 @@ def adaptive_avg_pool2d(x, output_size, data_format='NCHW', name=None):
output_size=[3, 3]) output_size=[3, 3])
# out.shape is [2, 3, 3, 3] # out.shape is [2, 3, 3, 3]
""" """
if not in_dygraph_mode(): if not in_dynamic_mode():
check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'], check_variable_and_dtype(x, 'x', ['float16', 'float32', 'float64'],
'adaptive_avg_pool2d') 'adaptive_avg_pool2d')
check_type(data_format, 'data_format', str, 'adaptive_avg_pool2d') check_type(data_format, 'data_format', str, 'adaptive_avg_pool2d')
...@@ -1357,7 +1355,7 @@ def adaptive_avg_pool2d(x, output_size, data_format='NCHW', name=None): ...@@ -1357,7 +1355,7 @@ def adaptive_avg_pool2d(x, output_size, data_format='NCHW', name=None):
if output_size[1] == None: if output_size[1] == None:
output_size[1] = in_w output_size[1] = in_w
if in_dygraph_mode(): if in_dynamic_mode():
output = _C_ops.pool2d(x, 'pooling_type', 'avg', 'ksize', output_size, output = _C_ops.pool2d(x, 'pooling_type', 'avg', 'ksize', output_size,
'global_pooling', False, 'adaptive', True, 'global_pooling', False, 'adaptive', True,
'data_format', data_format) 'data_format', data_format)
...@@ -1437,7 +1435,7 @@ def adaptive_avg_pool3d(x, output_size, data_format='NCDHW', name=None): ...@@ -1437,7 +1435,7 @@ def adaptive_avg_pool3d(x, output_size, data_format='NCDHW', name=None):
output_size=[3, 3, 3]) output_size=[3, 3, 3])
# out.shape is [2, 3, 3, 3, 3] # out.shape is [2, 3, 3, 3, 3]
""" """
if not in_dygraph_mode(): if not in_dynamic_mode():
check_variable_and_dtype(x, 'x', ['float32', 'float64'], check_variable_and_dtype(x, 'x', ['float32', 'float64'],
'adaptive_avg_pool3d') 'adaptive_avg_pool3d')
check_type(data_format, 'data_format', str, 'adaptive_avg_pool3d') check_type(data_format, 'data_format', str, 'adaptive_avg_pool3d')
...@@ -1463,7 +1461,7 @@ def adaptive_avg_pool3d(x, output_size, data_format='NCDHW', name=None): ...@@ -1463,7 +1461,7 @@ def adaptive_avg_pool3d(x, output_size, data_format='NCDHW', name=None):
if output_size[2] == None: if output_size[2] == None:
output_size[2] = in_w output_size[2] = in_w
if in_dygraph_mode(): if in_dynamic_mode():
output = _C_ops.pool3d(x, 'pooling_type', 'avg', 'ksize', output_size, output = _C_ops.pool3d(x, 'pooling_type', 'avg', 'ksize', output_size,
'global_pooling', False, 'adaptive', True, 'global_pooling', False, 'adaptive', True,
'data_format', data_format) 'data_format', data_format)
...@@ -1537,7 +1535,7 @@ def adaptive_max_pool1d(x, output_size, return_mask=False, name=None): ...@@ -1537,7 +1535,7 @@ def adaptive_max_pool1d(x, output_size, return_mask=False, name=None):
# pool_out shape: [1, 3, 16] indices shape: [1, 3, 16] # pool_out shape: [1, 3, 16] indices shape: [1, 3, 16]
""" """
pool_type = 'max' pool_type = 'max'
if not in_dygraph_mode(): if not in_dynamic_mode():
check_variable_and_dtype(x, 'x', ['float32', 'float64'], check_variable_and_dtype(x, 'x', ['float32', 'float64'],
'adaptive_max_pool1d') 'adaptive_max_pool1d')
check_type(output_size, 'pool_size', int, 'adaptive_max_pool1d') check_type(output_size, 'pool_size', int, 'adaptive_max_pool1d')
...@@ -1547,7 +1545,7 @@ def adaptive_max_pool1d(x, output_size, return_mask=False, name=None): ...@@ -1547,7 +1545,7 @@ def adaptive_max_pool1d(x, output_size, return_mask=False, name=None):
pool_size = [1] + utils.convert_to_list(output_size, 1, 'pool_size') pool_size = [1] + utils.convert_to_list(output_size, 1, 'pool_size')
x = unsqueeze(x, [2]) x = unsqueeze(x, [2])
if in_dygraph_mode(): if in_dynamic_mode():
pool_out = _C_ops.max_pool2d_with_index( pool_out = _C_ops.max_pool2d_with_index(
x, 'pooling_type', pool_type, 'ksize', pool_size, 'adaptive', True) x, 'pooling_type', pool_type, 'ksize', pool_size, 'adaptive', True)
return (squeeze(pool_out[0], [2]), squeeze( return (squeeze(pool_out[0], [2]), squeeze(
...@@ -1619,7 +1617,7 @@ def adaptive_max_pool2d(x, output_size, return_mask=False, name=None): ...@@ -1619,7 +1617,7 @@ def adaptive_max_pool2d(x, output_size, return_mask=False, name=None):
output_size=[3, 3]) output_size=[3, 3])
# out.shape is [2, 3, 3, 3] # out.shape is [2, 3, 3, 3]
""" """
if not in_dygraph_mode(): if not in_dynamic_mode():
check_variable_and_dtype(x, 'x', ['float32', 'float64'], check_variable_and_dtype(x, 'x', ['float32', 'float64'],
'adaptive_max_pool2d') 'adaptive_max_pool2d')
check_type(return_mask, 'return_mask', bool, 'adaptive_max_pool2d') check_type(return_mask, 'return_mask', bool, 'adaptive_max_pool2d')
...@@ -1636,7 +1634,7 @@ def adaptive_max_pool2d(x, output_size, return_mask=False, name=None): ...@@ -1636,7 +1634,7 @@ def adaptive_max_pool2d(x, output_size, return_mask=False, name=None):
if output_size[1] == None: if output_size[1] == None:
output_size[1] = in_w output_size[1] = in_w
if in_dygraph_mode(): if in_dynamic_mode():
pool_out = _C_ops.max_pool2d_with_index( pool_out = _C_ops.max_pool2d_with_index(
x, 'pooling_type', 'max', 'ksize', output_size, 'adaptive', True) x, 'pooling_type', 'max', 'ksize', output_size, 'adaptive', True)
return pool_out if return_mask else pool_out[0] return pool_out if return_mask else pool_out[0]
...@@ -1710,7 +1708,7 @@ def adaptive_max_pool3d(x, output_size, return_mask=False, name=None): ...@@ -1710,7 +1708,7 @@ def adaptive_max_pool3d(x, output_size, return_mask=False, name=None):
# out.shape is [2, 3, 3, 3, 3] # out.shape is [2, 3, 3, 3, 3]
""" """
if not in_dygraph_mode(): if not in_dynamic_mode():
check_variable_and_dtype(x, 'x', ['float32', 'float64'], check_variable_and_dtype(x, 'x', ['float32', 'float64'],
'adaptive_max_pool3d') 'adaptive_max_pool3d')
check_type(return_mask, 'return_mask', bool, 'adaptive_max_pool3d') check_type(return_mask, 'return_mask', bool, 'adaptive_max_pool3d')
...@@ -1729,7 +1727,7 @@ def adaptive_max_pool3d(x, output_size, return_mask=False, name=None): ...@@ -1729,7 +1727,7 @@ def adaptive_max_pool3d(x, output_size, return_mask=False, name=None):
if output_size[2] == None: if output_size[2] == None:
output_size[2] = in_w output_size[2] = in_w
if in_dygraph_mode(): if in_dynamic_mode():
pool_out = _C_ops.max_pool3d_with_index( pool_out = _C_ops.max_pool3d_with_index(
x, 'pooling_type', 'max', 'ksize', output_size, 'adaptive', True) x, 'pooling_type', 'max', 'ksize', output_size, 'adaptive', True)
return pool_out if return_mask else pool_out[0] return pool_out if return_mask else pool_out[0]
......
...@@ -14,10 +14,10 @@ ...@@ -14,10 +14,10 @@
import warnings import warnings
import paddle import paddle
from ...fluid.framework import in_dygraph_mode, default_main_program from ...fluid.framework import default_main_program
from paddle.fluid.layer_helper import LayerHelper from paddle.fluid.layer_helper import LayerHelper
from ...fluid.framework import in_dygraph_mode
from paddle import _C_ops from paddle import _C_ops
from paddle import in_dynamic_mode
def sparse_attention(query, def sparse_attention(query,
...@@ -143,7 +143,7 @@ def sparse_attention(query, ...@@ -143,7 +143,7 @@ def sparse_attention(query,
# [1.60885942, 2.60885954], # [1.60885942, 2.60885954],
# [1.99830270, 2.99830270]]]] # [1.99830270, 2.99830270]]]]
""" """
if in_dygraph_mode(): if in_dynamic_mode():
result_attention, result_sdd, result_softmax = _C_ops.sparse_attention( result_attention, result_sdd, result_softmax = _C_ops.sparse_attention(
query, key, value, sparse_csr_offset, sparse_csr_columns, query, key, value, sparse_csr_offset, sparse_csr_columns,
key_padding_mask, attn_mask) key_padding_mask, attn_mask)
......
...@@ -13,13 +13,14 @@ ...@@ -13,13 +13,14 @@
# limitations under the License. # limitations under the License.
from ...device import get_cudnn_version from ...device import get_cudnn_version
from ...fluid.framework import core, in_dygraph_mode
from ...static import Variable from ...static import Variable
from ...fluid.layer_helper import LayerHelper from ...fluid.layer_helper import LayerHelper
from ...fluid.data_feeder import check_variable_and_dtype from ...fluid.data_feeder import check_variable_and_dtype
from ...fluid import dygraph_utils from ...fluid import dygraph_utils
import numpy as np import numpy as np
from paddle import _C_ops from paddle import _C_ops
from ...device import is_compiled_with_rocm
from paddle import in_dynamic_mode
__all__ = [] __all__ = []
...@@ -83,14 +84,14 @@ def affine_grid(theta, out_shape, align_corners=True, name=None): ...@@ -83,14 +84,14 @@ def affine_grid(theta, out_shape, align_corners=True, name=None):
use_cudnn = True use_cudnn = True
else: else:
use_cudnn = False use_cudnn = False
if core.is_compiled_with_rocm(): if is_compiled_with_rocm():
use_cudnn = False # ROCM platform do not have MIOPEN kernel for affine_grid use_cudnn = False # ROCM platform do not have MIOPEN kernel for affine_grid
if not (isinstance(out_shape, list) or isinstance(out_shape, tuple) or \ if not (isinstance(out_shape, list) or isinstance(out_shape, tuple) or \
isinstance(out_shape, Variable)): isinstance(out_shape, Variable)):
raise ValueError("The out_shape should be a list, tuple or Tensor.") raise ValueError("The out_shape should be a list, tuple or Tensor.")
if in_dygraph_mode(): if in_dynamic_mode():
_out_shape = out_shape.numpy().tolist() if isinstance( _out_shape = out_shape.numpy().tolist() if isinstance(
out_shape, Variable) else out_shape out_shape, Variable) else out_shape
return _C_ops.affine_grid(theta, "output_shape", _out_shape, return _C_ops.affine_grid(theta, "output_shape", _out_shape,
...@@ -263,7 +264,7 @@ def grid_sample(x, ...@@ -263,7 +264,7 @@ def grid_sample(x,
cudnn_version = get_cudnn_version() cudnn_version = get_cudnn_version()
use_cudnn = False use_cudnn = False
if not core.is_compiled_with_rocm() and ( if not is_compiled_with_rocm() and (
cudnn_version is not None cudnn_version is not None
) and align_corners and mode == 'bilinear' and padding_mode == 'zeros': ) and align_corners and mode == 'bilinear' and padding_mode == 'zeros':
use_cudnn = True use_cudnn = True
...@@ -271,7 +272,7 @@ def grid_sample(x, ...@@ -271,7 +272,7 @@ def grid_sample(x,
x.stop_gradient = False x.stop_gradient = False
grid.stop_gradient = False grid.stop_gradient = False
if in_dygraph_mode(): if in_dynamic_mode():
attrs = ('mode', mode, 'padding_mode', padding_mode, 'align_corners', attrs = ('mode', mode, 'padding_mode', padding_mode, 'align_corners',
align_corners, 'use_cudnn', use_cudnn) align_corners, 'use_cudnn', use_cudnn)
out = getattr(_C_ops, 'grid_sampler')(x, grid, *attrs) out = getattr(_C_ops, 'grid_sampler')(x, grid, *attrs)
...@@ -329,7 +330,7 @@ def pixel_shuffle(x, upscale_factor, data_format="NCHW", name=None): ...@@ -329,7 +330,7 @@ def pixel_shuffle(x, upscale_factor, data_format="NCHW", name=None):
"But recevie Attr(data_format): {} ".format( "But recevie Attr(data_format): {} ".format(
data_format)) data_format))
if in_dygraph_mode(): if in_dynamic_mode():
return _C_ops.pixel_shuffle(x, "upscale_factor", upscale_factor, return _C_ops.pixel_shuffle(x, "upscale_factor", upscale_factor,
"data_format", data_format) "data_format", data_format)
......
...@@ -11,11 +11,7 @@ ...@@ -11,11 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
import paddle
from ...fluid import framework
from ...fluid import core
from ...fluid import unique_name
from ...fluid.core import VarDesc
from ...fluid.data_feeder import check_type from ...fluid.data_feeder import check_type
from ...fluid.initializer import NumpyArrayInitializer from ...fluid.initializer import NumpyArrayInitializer
...@@ -88,13 +84,14 @@ class Assign(NumpyArrayInitializer): ...@@ -88,13 +84,14 @@ class Assign(NumpyArrayInitializer):
def __init__(self, value, name=None): def __init__(self, value, name=None):
import numpy import numpy
check_type(value, 'value', check_type(value, 'value',
(numpy.ndarray, list, tuple, framework.Variable), 'Assign') (numpy.ndarray, list, tuple, paddle.static.Variable),
'Assign')
if (isinstance(value, (list, tuple))): if (isinstance(value, (list, tuple))):
value = numpy.array(value) value = numpy.array(value)
# TODO: value is already is a tensor, accounting efficiency maybe it does not need to convert tensor to numpy data and then initialized. # TODO: value is already is a tensor, accounting efficiency maybe it does not need to convert tensor to numpy data and then initialized.
if (isinstance(value, framework.Variable)): if (isinstance(value, paddle.static.Variable)):
value = value.numpy() value = value.numpy()
super(Assign, self).__init__(value) super(Assign, self).__init__(value)
...@@ -15,7 +15,9 @@ ...@@ -15,7 +15,9 @@
from ...fluid.initializer import Initializer from ...fluid.initializer import Initializer
from ...fluid.data_feeder import check_variable_and_dtype from ...fluid.data_feeder import check_variable_and_dtype
from ...fluid.core import VarDesc from ...fluid.core import VarDesc
from ...fluid import unique_name, framework from ...fluid import framework
from paddle import in_dynamic_mode
from paddle.utils import unique_name
__all__ = [] __all__ = []
...@@ -221,6 +223,6 @@ class Dirac(Initializer): ...@@ -221,6 +223,6 @@ class Dirac(Initializer):
"out_dtype": var.dtype}, "out_dtype": var.dtype},
stop_gradient=True) stop_gradient=True)
if not framework.in_dygraph_mode(): if not in_dynamic_mode():
var.op = op var.op = op
return op return op
...@@ -14,9 +14,9 @@ ...@@ -14,9 +14,9 @@
from ...fluid.initializer import Initializer from ...fluid.initializer import Initializer
from ...fluid.data_feeder import check_variable_and_dtype from ...fluid.data_feeder import check_variable_and_dtype
from ...fluid.core import VarDesc from ...fluid import framework
from ...fluid import unique_name, framework
from ...tensor import diag, transpose, sign, qr, reshape from ...tensor import diag, transpose, sign, qr, reshape
from paddle.utils import unique_name
__all__ = [] __all__ = []
......
...@@ -14,8 +14,6 @@ ...@@ -14,8 +14,6 @@
# TODO: define activation functions of neural network # TODO: define activation functions of neural network
from ...fluid import core
from ...fluid.framework import in_dygraph_mode
from ...framework import ParamAttr from ...framework import ParamAttr
from ..initializer import Constant from ..initializer import Constant
from paddle.framework import get_default_dtype from paddle.framework import get_default_dtype
......
...@@ -15,10 +15,10 @@ ...@@ -15,10 +15,10 @@
# TODO: define the common classes to build a neural network # TODO: define the common classes to build a neural network
import paddle import paddle
from ...fluid.dygraph import Flatten # noqa: F401 from ...fluid.dygraph import Flatten # noqa: F401
from ...fluid.framework import in_dygraph_mode
from .. import functional as F from .. import functional as F
from ...fluid.framework import _dygraph_tracer from ...fluid.framework import _dygraph_tracer
from paddle.nn import Layer from paddle.nn import Layer
from paddle import in_dynamic_mode
__all__ = [] __all__ = []
...@@ -1456,7 +1456,7 @@ class Embedding(Layer): ...@@ -1456,7 +1456,7 @@ class Embedding(Layer):
dtype=self._dtype, dtype=self._dtype,
is_bias=False) is_bias=False)
if in_dygraph_mode() and padding_idx != -1: if in_dynamic_mode() and padding_idx != -1:
with paddle.no_grad(): with paddle.no_grad():
self.weight[padding_idx] = 0.0 self.weight[padding_idx] = 0.0
......
...@@ -16,14 +16,15 @@ ...@@ -16,14 +16,15 @@
import numpy as np import numpy as np
from ...fluid import get_flags from paddle import get_flags
from ...fluid import core
from ...device import get_cudnn_version from ...device import get_cudnn_version
from .. import Layer from .. import Layer
from ..initializer import Normal from ..initializer import Normal
from .. import functional as F from .. import functional as F
from ...fluid.layers import utils from ...fluid.layers import utils
from ..functional.conv import _update_padding_nd from ..functional.conv import _update_padding_nd
from ...device import is_compiled_with_cuda
from ...device import is_compiled_with_rocm
__all__ = [] __all__ = []
...@@ -138,7 +139,7 @@ class _ConvNd(Layer): ...@@ -138,7 +139,7 @@ class _ConvNd(Layer):
cudnn_version = get_cudnn_version() cudnn_version = get_cudnn_version()
self._use_cudnn = True if (core.is_compiled_with_cuda() and self._use_cudnn = True if (is_compiled_with_cuda() and
cudnn_version is not None) else False cudnn_version is not None) else False
self._op_type = "conv" + str(dims) + 'd' self._op_type = "conv" + str(dims) + 'd'
...@@ -146,13 +147,13 @@ class _ConvNd(Layer): ...@@ -146,13 +147,13 @@ class _ConvNd(Layer):
in_channels != 1 and in_channels != 1 and
out_channels % in_channels == 0): out_channels % in_channels == 0):
self._op_type = 'depthwise_conv2d' self._op_type = 'depthwise_conv2d'
if core.is_compiled_with_rocm(): if is_compiled_with_rocm():
self._use_cudnn = True self._use_cudnn = True
else: else:
self._use_cudnn = False self._use_cudnn = False
if (core.is_compiled_with_cuda() and get_flags( if (is_compiled_with_cuda() and get_flags("FLAGS_conv2d_disable_cudnn")[
"FLAGS_conv2d_disable_cudnn")["FLAGS_conv2d_disable_cudnn"]): "FLAGS_conv2d_disable_cudnn"]):
self._use_cudnn = False self._use_cudnn = False
def extra_repr(self): def extra_repr(self):
......
...@@ -16,10 +16,10 @@ import numpy as np ...@@ -16,10 +16,10 @@ import numpy as np
import paddle import paddle
from .. import Layer from .. import Layer
from ...fluid.framework import core, in_dygraph_mode
from ...fluid.data_feeder import check_variable_and_dtype, check_type from ...fluid.data_feeder import check_variable_and_dtype, check_type
from ...fluid.layer_helper import LayerHelper from ...fluid.layer_helper import LayerHelper
from paddle import _C_ops from paddle import _C_ops
from paddle import in_dynamic_mode
__all__ = [] __all__ = []
...@@ -78,7 +78,7 @@ class PairwiseDistance(Layer): ...@@ -78,7 +78,7 @@ class PairwiseDistance(Layer):
check_type(self.keepdim, 'keepdim', (bool), 'PairwiseDistance') check_type(self.keepdim, 'keepdim', (bool), 'PairwiseDistance')
def forward(self, x, y): def forward(self, x, y):
if in_dygraph_mode(): if in_dynamic_mode():
sub = _C_ops.elementwise_sub(x, y) sub = _C_ops.elementwise_sub(x, y)
return _C_ops.p_norm(sub, 'axis', 1, 'porder', self.p, 'keepdim', return _C_ops.p_norm(sub, 'axis', 1, 'porder', self.p, 'keepdim',
self.keepdim, 'epsilon', self.epsilon) self.keepdim, 'epsilon', self.epsilon)
......
...@@ -16,11 +16,11 @@ ...@@ -16,11 +16,11 @@
# TODO: define loss functions of neural network # TODO: define loss functions of neural network
import numpy as np import numpy as np
import paddle.fluid as fluid import paddle.fluid as fluid
import paddle.fluid.core as core
import paddle import paddle
from .. import functional as F from .. import functional as F
from paddle.fluid.framework import core, in_dygraph_mode, _varbase_creator from paddle.fluid.framework import _varbase_creator
from .. import Layer from .. import Layer
from paddle import in_dynamic_mode
__all__ = [] __all__ = []
...@@ -591,7 +591,7 @@ class MSELoss(Layer): ...@@ -591,7 +591,7 @@ class MSELoss(Layer):
self.reduction = reduction self.reduction = reduction
def forward(self, input, label): def forward(self, input, label):
if not fluid.framework.in_dygraph_mode(): if not in_dynamic_mode():
fluid.data_feeder.check_variable_and_dtype( fluid.data_feeder.check_variable_and_dtype(
input, 'input', ['float32', 'float64'], 'MSELoss') input, 'input', ['float32', 'float64'], 'MSELoss')
fluid.data_feeder.check_variable_and_dtype( fluid.data_feeder.check_variable_and_dtype(
......
...@@ -33,12 +33,11 @@ from ...fluid.dygraph import BatchNorm # noqa: F401 ...@@ -33,12 +33,11 @@ from ...fluid.dygraph import BatchNorm # noqa: F401
from ...fluid.dygraph import SpectralNorm # noqa: F401 from ...fluid.dygraph import SpectralNorm # noqa: F401
from ...framework import get_default_dtype, set_default_dtype from ...framework import get_default_dtype, set_default_dtype
from ...fluid.framework import in_dygraph_mode
from ..initializer import Constant from ..initializer import Constant
from ...framework import ParamAttr from ...framework import ParamAttr
from ...fluid.data_feeder import check_variable_and_dtype, check_type from ...fluid.data_feeder import check_variable_and_dtype, check_type
from ...fluid import core, dygraph_utils from ...fluid import dygraph_utils
from ..functional import batch_norm, layer_norm, instance_norm from ..functional import batch_norm, layer_norm, instance_norm
...@@ -49,6 +48,7 @@ from ...framework import no_grad ...@@ -49,6 +48,7 @@ from ...framework import no_grad
from .. import functional as F from .. import functional as F
from paddle import _C_ops from paddle import _C_ops
from .. import Layer from .. import Layer
from paddle import in_dynamic_mode
__all__ = [] __all__ = []
...@@ -1087,7 +1087,7 @@ class SyncBatchNorm(_BatchNormBase): ...@@ -1087,7 +1087,7 @@ class SyncBatchNorm(_BatchNormBase):
### train mode: use mini-batch stats, eval mode: use global stats ### train mode: use mini-batch stats, eval mode: use global stats
### use_global_stats only support False in sync_batch_norm ### use_global_stats only support False in sync_batch_norm
if in_dygraph_mode(): if in_dynamic_mode():
attrs = ("momentum", self._momentum, "epsilon", self._epsilon, attrs = ("momentum", self._momentum, "epsilon", self._epsilon,
"is_test", not self.training, "data_layout", "is_test", not self.training, "data_layout",
self._data_format, "use_mkldnn", False, "fuse_with_relu", self._data_format, "use_mkldnn", False, "fuse_with_relu",
......
...@@ -33,6 +33,11 @@ from paddle.fluid.layers import utils ...@@ -33,6 +33,11 @@ from paddle.fluid.layers import utils
from paddle.fluid.layers.utils import map_structure, flatten, pack_sequence_as from paddle.fluid.layers.utils import map_structure, flatten, pack_sequence_as
from paddle.fluid.data_feeder import convert_dtype from paddle.fluid.data_feeder import convert_dtype
from paddle import _C_ops from paddle import _C_ops
from paddle import in_dynamic_mode
from paddle.framework import core
from paddle.static import default_startup_program
from paddle.static import program_guard
__all__ = [] __all__ = []
...@@ -970,8 +975,8 @@ class RNNBase(LayerList): ...@@ -970,8 +975,8 @@ class RNNBase(LayerList):
# dropout state may also can be hided and avoid saving # dropout state may also can be hided and avoid saving
# should dropout state be persistable for static-graph # should dropout state be persistable for static-graph
self._dropout_state = self.create_variable( self._dropout_state = self.create_variable(
dtype=fluid.core.VarDesc.VarType.UINT8) dtype=core.VarDesc.VarType.UINT8)
if fluid.framework.in_dygraph_mode(): if in_dynamic_mode():
with paddle.no_grad(): with paddle.no_grad():
_C_ops.coalesce_tensor(self._all_weights, self._all_weights, _C_ops.coalesce_tensor(self._all_weights, self._all_weights,
self._flat_weight[0], "copy_data", self._flat_weight[0], "copy_data",
...@@ -979,8 +984,8 @@ class RNNBase(LayerList): ...@@ -979,8 +984,8 @@ class RNNBase(LayerList):
params[0].dtype) params[0].dtype)
return return
# for static-graph, append coalesce_tensor into startup program # for static-graph, append coalesce_tensor into startup program
with fluid.program_guard(fluid.default_startup_program(), with program_guard(default_startup_program(),
fluid.default_startup_program()): default_startup_program()):
with paddle.no_grad(): with paddle.no_grad():
self._helper.append_op( self._helper.append_op(
type="coalesce_tensor", type="coalesce_tensor",
...@@ -999,7 +1004,7 @@ class RNNBase(LayerList): ...@@ -999,7 +1004,7 @@ class RNNBase(LayerList):
if not self.time_major: if not self.time_major:
inputs = paddle.tensor.transpose(inputs, [1, 0, 2]) inputs = paddle.tensor.transpose(inputs, [1, 0, 2])
if fluid.framework.in_dygraph_mode(): if in_dynamic_mode():
_, _, out, state = _C_ops.rnn( _, _, out, state = _C_ops.rnn(
inputs, initial_states, self._all_weights, sequence_length, inputs, initial_states, self._all_weights, sequence_length,
self._dropout_state, self.state_components, 'dropout_prob', self._dropout_state, self.state_components, 'dropout_prob',
...@@ -1014,7 +1019,7 @@ class RNNBase(LayerList): ...@@ -1014,7 +1019,7 @@ class RNNBase(LayerList):
for i in range(self.state_components) for i in range(self.state_components)
] ]
reserve = self._helper.create_variable_for_type_inference( reserve = self._helper.create_variable_for_type_inference(
dtype=fluid.core.VarDesc.VarType.UINT8, stop_gradient=True) dtype=core.VarDesc.VarType.UINT8, stop_gradient=True)
inputs = { inputs = {
'Input': inputs, 'Input': inputs,
......
...@@ -12,13 +12,13 @@ ...@@ -12,13 +12,13 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from ...fluid.dygraph import layers
from ...tensor import math, manipulation from ...tensor import math, manipulation
from .. import Layer
__all__ = [] __all__ = []
class FloatFunctionalLayer(layers.Layer): class FloatFunctionalLayer(Layer):
def __init__(self): def __init__(self):
super(FloatFunctionalLayer, self).__init__() super(FloatFunctionalLayer, self).__init__()
......
...@@ -12,19 +12,19 @@ ...@@ -12,19 +12,19 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from paddle.fluid.dygraph import layers from paddle.framework import core
from paddle.fluid import core
from paddle.fluid import dygraph_utils from paddle.fluid import dygraph_utils
from paddle.fluid import unique_name from paddle.utils import unique_name
from paddle.fluid.param_attr import ParamAttr from paddle.framework import ParamAttr
from paddle.fluid.framework import _varbase_creator from paddle.fluid.framework import _varbase_creator
from paddle.fluid.framework import in_dygraph_mode from paddle.nn.initializer import Constant
from paddle.fluid.initializer import Constant
from paddle.fluid.data_feeder import check_variable_and_dtype from paddle.fluid.data_feeder import check_variable_and_dtype
from paddle.nn import functional as F from paddle.nn import functional as F
import logging import logging
from paddle.fluid.log_helper import get_logger from paddle.fluid.log_helper import get_logger
from paddle import _C_ops from paddle import _C_ops
from paddle import in_dynamic_mode
from paddle.nn import Layer
__all__ = [ __all__ = [
'FakeQuantAbsMax', 'FakeQuantAbsMax',
...@@ -43,7 +43,7 @@ _logger = get_logger( ...@@ -43,7 +43,7 @@ _logger = get_logger(
__name__, logging.INFO, fmt='%(asctime)s-%(levelname)s: %(message)s') __name__, logging.INFO, fmt='%(asctime)s-%(levelname)s: %(message)s')
class FakeQuantAbsMax(layers.Layer): class FakeQuantAbsMax(Layer):
r""" r"""
FakeQuantAbsMax layer does the abs_max quant and then dequant. FakeQuantAbsMax layer does the abs_max quant and then dequant.
Its computational formula is described as below: Its computational formula is described as below:
...@@ -76,7 +76,7 @@ class FakeQuantAbsMax(layers.Layer): ...@@ -76,7 +76,7 @@ class FakeQuantAbsMax(layers.Layer):
self._scale = None self._scale = None
def forward(self, input): def forward(self, input):
if in_dygraph_mode(): if in_dynamic_mode():
attrs = ('bit_length', self._quant_bits) attrs = ('bit_length', self._quant_bits)
quant_out = _varbase_creator( quant_out = _varbase_creator(
type=input.type, type=input.type,
...@@ -125,7 +125,7 @@ class FakeQuantAbsMax(layers.Layer): ...@@ -125,7 +125,7 @@ class FakeQuantAbsMax(layers.Layer):
return quant_out return quant_out
class FakeQuantMovingAverageAbsMax(layers.Layer): class FakeQuantMovingAverageAbsMax(Layer):
r""" r"""
FakeQuantMovingAverageAbsMax layer does the moving_average_abs_max quant and then dequant. FakeQuantMovingAverageAbsMax layer does the moving_average_abs_max quant and then dequant.
Its computational formula is described as below: Its computational formula is described as below:
...@@ -175,7 +175,7 @@ class FakeQuantMovingAverageAbsMax(layers.Layer): ...@@ -175,7 +175,7 @@ class FakeQuantMovingAverageAbsMax(layers.Layer):
self._accum.stop_gradient = True self._accum.stop_gradient = True
def forward(self, input): def forward(self, input):
if in_dygraph_mode(): if in_dynamic_mode():
attrs = ('moving_rate', self._moving_rate, 'bit_length', attrs = ('moving_rate', self._moving_rate, 'bit_length',
self._quant_bits, 'is_test', not self.training) self._quant_bits, 'is_test', not self.training)
quant_out = _varbase_creator( quant_out = _varbase_creator(
...@@ -223,7 +223,7 @@ class FakeQuantMovingAverageAbsMax(layers.Layer): ...@@ -223,7 +223,7 @@ class FakeQuantMovingAverageAbsMax(layers.Layer):
return quant_out return quant_out
class FakeQuantChannelWiseAbsMax(layers.Layer): class FakeQuantChannelWiseAbsMax(Layer):
def __init__(self, def __init__(self,
name=None, name=None,
channel_num=None, channel_num=None,
...@@ -253,7 +253,7 @@ class FakeQuantChannelWiseAbsMax(layers.Layer): ...@@ -253,7 +253,7 @@ class FakeQuantChannelWiseAbsMax(layers.Layer):
self._scale = None self._scale = None
def forward(self, input): def forward(self, input):
if in_dygraph_mode(): if in_dynamic_mode():
attrs = ('bit_length', self._quant_bits, 'quant_axis', attrs = ('bit_length', self._quant_bits, 'quant_axis',
self._quant_axis) self._quant_axis)
quant_out = _varbase_creator( quant_out = _varbase_creator(
...@@ -306,7 +306,7 @@ class FakeQuantChannelWiseAbsMax(layers.Layer): ...@@ -306,7 +306,7 @@ class FakeQuantChannelWiseAbsMax(layers.Layer):
return quant_out return quant_out
class MovingAverageAbsMaxScale(layers.Layer): class MovingAverageAbsMaxScale(Layer):
def __init__(self, name=None, moving_rate=0.9, dtype='float32'): def __init__(self, name=None, moving_rate=0.9, dtype='float32'):
r""" r"""
MovingAverageMaxScale layer is used to calculating the output quantization MovingAverageMaxScale layer is used to calculating the output quantization
...@@ -345,7 +345,7 @@ class MovingAverageAbsMaxScale(layers.Layer): ...@@ -345,7 +345,7 @@ class MovingAverageAbsMaxScale(layers.Layer):
self._accum.stop_gradient = True self._accum.stop_gradient = True
def forward(self, input): def forward(self, input):
if in_dygraph_mode(): if in_dynamic_mode():
attrs = ('moving_rate', self._moving_rate, 'is_test', attrs = ('moving_rate', self._moving_rate, 'is_test',
not self.training) not self.training)
state = self._state if self.training else None state = self._state if self.training else None
...@@ -393,7 +393,7 @@ class MovingAverageAbsMaxScale(layers.Layer): ...@@ -393,7 +393,7 @@ class MovingAverageAbsMaxScale(layers.Layer):
QuantStub = MovingAverageAbsMaxScale QuantStub = MovingAverageAbsMaxScale
class QuantizedConv2D(layers.Layer): class QuantizedConv2D(Layer):
""" """
The computational logic of QuantizedConv2D is the same with Conv2D. The computational logic of QuantizedConv2D is the same with Conv2D.
The only difference is that its inputs are all fake quantized. The only difference is that its inputs are all fake quantized.
...@@ -482,7 +482,7 @@ class QuantizedConv2D(layers.Layer): ...@@ -482,7 +482,7 @@ class QuantizedConv2D(layers.Layer):
data_format=self._data_format) data_format=self._data_format)
class QuantizedConv2DTranspose(layers.Layer): class QuantizedConv2DTranspose(Layer):
""" """
The computational logic of QuantizedConv2DTranspose is the same with Conv2DTranspose. The computational logic of QuantizedConv2DTranspose is the same with Conv2DTranspose.
The only difference is that its inputs are all fake quantized. The only difference is that its inputs are all fake quantized.
...@@ -588,7 +588,7 @@ class QuantizedConv2DTranspose(layers.Layer): ...@@ -588,7 +588,7 @@ class QuantizedConv2DTranspose(layers.Layer):
data_format=self._data_format) data_format=self._data_format)
class QuantizedLinear(layers.Layer): class QuantizedLinear(Layer):
""" """
The computational logic of QuantizedLinear is the same with Linear. The computational logic of QuantizedLinear is the same with Linear.
The only difference is that its inputs are all fake quantized. The only difference is that its inputs are all fake quantized.
...@@ -657,7 +657,7 @@ class QuantizedLinear(layers.Layer): ...@@ -657,7 +657,7 @@ class QuantizedLinear(layers.Layer):
return out return out
class MAOutputScaleLayer(layers.Layer): class MAOutputScaleLayer(Layer):
""" """
Add MovingAverageMaxScale layer to the behind of the input layer. Add MovingAverageMaxScale layer to the behind of the input layer.
Calculate the scale (moving average abs max) for the output of the input layer. Calculate the scale (moving average abs max) for the output of the input layer.
...@@ -684,7 +684,7 @@ class MAOutputScaleLayer(layers.Layer): ...@@ -684,7 +684,7 @@ class MAOutputScaleLayer(layers.Layer):
return self._ma_output_scale(out) return self._ma_output_scale(out)
class FakeQuantMAOutputScaleLayer(layers.Layer): class FakeQuantMAOutputScaleLayer(Layer):
""" """
Add FakeQuantMovingAverageAbsMax layer to the behind of the input layer. Add FakeQuantMovingAverageAbsMax layer to the behind of the input layer.
""" """
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
import paddle
import numpy as np import numpy as np
from ... import fluid from ... import fluid
from ...fluid import dygraph from ...fluid import dygraph
...@@ -39,25 +39,25 @@ def l2_norm(x, axis, epsilon=1e-12, name=None): ...@@ -39,25 +39,25 @@ def l2_norm(x, axis, epsilon=1e-12, name=None):
"axis": 1 if axis is None else axis, "axis": 1 if axis is None else axis,
"epsilon": epsilon, "epsilon": epsilon,
}) })
return F.squeeze(norm, axes=[axis]) return paddle.squeeze(norm, axis=[axis])
def norm_except_dim(p, dim): def norm_except_dim(p, dim):
shape = p.shape shape = p.shape
ndims = len(shape) ndims = len(shape)
if dim == -1: if dim == -1:
return F.sqrt(F.reduce_sum(F.square(p)) + 1e-12) return paddle.sqrt(paddle.sum(paddle.square(p)) + 1e-12)
elif dim == 0: elif dim == 0:
p_matrix = F.reshape(p, (shape[0], -1)) p_matrix = paddle.reshape(p, (shape[0], -1))
return l2_norm(p_matrix, axis=1) return l2_norm(p_matrix, axis=1)
elif dim == ndims - 1: elif dim == ndims - 1:
p_matrix = F.reshape(p, (-1, shape[-1])) p_matrix = paddle.reshape(p, (-1, shape[-1]))
return l2_norm(p_matrix, axis=0) return l2_norm(p_matrix, axis=0)
else: else:
perm = list(range(ndims)) perm = list(range(ndims))
perm[0] = dim perm[0] = dim
perm[dim] = 0 perm[dim] = 0
p_transposed = F.transpose(p, perm) p_transposed = paddle.transpose(p, perm)
return norm_except_dim(p_transposed, 0) return norm_except_dim(p_transposed, 0)
...@@ -66,25 +66,25 @@ def _weight_norm(v, g, dim): ...@@ -66,25 +66,25 @@ def _weight_norm(v, g, dim):
ndims = len(shape) ndims = len(shape)
if dim == -1: if dim == -1:
v_normalized = v / (F.sqrt(F.reduce_sum(F.square(v))) + 1e-12) v_normalized = v / (paddle.sqrt(paddle.sum(paddle.square(v))) + 1e-12)
elif dim == 0: elif dim == 0:
p_matrix = F.reshape(v, (shape[0], -1)) p_matrix = paddle.reshape(v, (shape[0], -1))
v_normalized = F.l2_normalize(p_matrix, axis=1) v_normalized = F.l2_normalize(p_matrix, axis=1)
v_normalized = F.reshape(v_normalized, shape) v_normalized = paddle.reshape(v_normalized, shape)
elif dim == ndims - 1: elif dim == ndims - 1:
p_matrix = F.reshape(v, (-1, shape[-1])) p_matrix = paddle.reshape(v, (-1, shape[-1]))
v_normalized = F.l2_normalize(p_matrix, axis=0) v_normalized = F.l2_normalize(p_matrix, axis=0)
v_normalized = F.reshape(v_normalized, shape) v_normalized = paddle.reshape(v_normalized, shape)
else: else:
perm = list(range(ndims)) perm = list(range(ndims))
perm[0] = dim perm[0] = dim
perm[dim] = 0 perm[dim] = 0
p_transposed = F.transpose(v, perm) p_transposed = paddle.transpose(v, perm)
transposed_shape = p_transposed.shape transposed_shape = p_transposed.shape
p_matrix = F.reshape(p_transposed, (p_transposed.shape[0], -1)) p_matrix = paddle.reshape(p_transposed, (p_transposed.shape[0], -1))
v_normalized = F.l2_normalize(p_matrix, axis=1) v_normalized = F.l2_normalize(p_matrix, axis=1)
v_normalized = F.reshape(v_normalized, transposed_shape) v_normalized = paddle.reshape(v_normalized, transposed_shape)
v_normalized = F.transpose(v_normalized, perm) v_normalized = paddle.transpose(v_normalized, perm)
weight = F.elementwise_mul( weight = F.elementwise_mul(
v_normalized, g, axis=dim if dim is not None else -1) v_normalized, g, axis=dim if dim is not None else -1)
return weight return weight
...@@ -130,9 +130,9 @@ class WeightNorm(object): ...@@ -130,9 +130,9 @@ class WeightNorm(object):
layer.add_parameter(name + "_v", v) layer.add_parameter(name + "_v", v)
g = layer.create_parameter(g_var.shape, dtype=g_var.dtype) g = layer.create_parameter(g_var.shape, dtype=g_var.dtype)
layer.add_parameter(name + '_g', g) layer.add_parameter(name + '_g', g)
with dygraph.no_grad(): with paddle.no_grad():
F.assign(w, v) paddle.assign(w, v)
F.assign(g_var, g) paddle.assign(g_var, g)
setattr(layer, name, fn.compute_weight(layer)) setattr(layer, name, fn.compute_weight(layer))
layer.register_forward_pre_hook(fn) layer.register_forward_pre_hook(fn)
...@@ -145,8 +145,8 @@ class WeightNorm(object): ...@@ -145,8 +145,8 @@ class WeightNorm(object):
del layer._parameters[self.name + '_v'] del layer._parameters[self.name + '_v']
w = layer.create_parameter(w_var.shape, dtype=w_var.dtype) w = layer.create_parameter(w_var.shape, dtype=w_var.dtype)
layer.add_parameter(self.name, w) layer.add_parameter(self.name, w)
with dygraph.no_grad(): with paddle.no_grad():
F.assign(w_var, w) paddle.assign(w_var, w)
def __call__(self, layer, inputs): def __call__(self, layer, inputs):
setattr(layer, self.name, self.compute_weight(layer)) setattr(layer, self.name, self.compute_weight(layer))
......
...@@ -30,6 +30,7 @@ from ..fluid.layers import unstack # noqa: F401 ...@@ -30,6 +30,7 @@ from ..fluid.layers import unstack # noqa: F401
from ..fluid.layers import scatter_nd # noqa: F401 from ..fluid.layers import scatter_nd # noqa: F401
from ..fluid.layers import shard_index # noqa: F401 from ..fluid.layers import shard_index # noqa: F401
from ..fluid.layers import crop_tensor as crop # noqa: F401
from ..fluid.layers.nn import _elementwise_op_in_dygraph from ..fluid.layers.nn import _elementwise_op_in_dygraph
from ..fluid import layers from ..fluid import layers
from ..fluid.dygraph.inplace_utils import inplace_apis_in_dygraph_only from ..fluid.dygraph.inplace_utils import inplace_apis_in_dygraph_only
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册