diff --git a/python/paddle/fluid/dygraph/nn.py b/python/paddle/fluid/dygraph/nn.py index 608e85acec3f2..d9a431990c10b 100644 --- a/python/paddle/fluid/dygraph/nn.py +++ b/python/paddle/fluid/dygraph/nn.py @@ -3062,6 +3062,12 @@ def __init__(self, self._dtype = dtype self._weight_shape = list(weight_shape) + assert np.prod(self._weight_shape) > 0,\ + "Any dimension of `weight_shape` cannot be equal to 0." + assert dim < len(self._weight_shape), \ + ("The input `dim` should be less than the " + "length of `weight_shape`, but received dim=" + "{}".format(dim)) h = self._weight_shape[self._dim] w = np.prod(self._weight_shape) // h diff --git a/python/paddle/fluid/layers/nn.py b/python/paddle/fluid/layers/nn.py index 6251bdf165a97..a42da12bf09eb 100755 --- a/python/paddle/fluid/layers/nn.py +++ b/python/paddle/fluid/layers/nn.py @@ -3720,6 +3720,10 @@ def spectral_norm(weight, dim=0, power_iters=1, eps=1e-12, name=None): # create intput and parameters inputs = {'Weight': weight} input_shape = weight.shape + assert weight.numel() > 0, "Any dimension of input cannot be equal to 0." + assert dim < len(input_shape), ("The input `dim` should be less than the " + "rank of `weight`, but received dim=" + "{}".format(dim)) h = input_shape[dim] w = np.prod(input_shape) // h