diff --git a/python/paddle/fluid/layers/nn.py b/python/paddle/fluid/layers/nn.py index 91d82837bc4fc95a89e3a391e59446ab7d2961ee..659d77635e4c733bb9fb597e4e56b687c50b42d2 100755 --- a/python/paddle/fluid/layers/nn.py +++ b/python/paddle/fluid/layers/nn.py @@ -14812,6 +14812,29 @@ def mul(x, y, x_num_col_dims=1, y_num_col_dims=1, name=None): helper = LayerHelper("mul", **locals()) + if not isinstance(x, Variable): + raise TypeError( + "The type of 'x' in mul must be Variable, but received %s" % + (type(x))) + if not isinstance(y, Variable): + raise TypeError( + "The type of 'y' in mul must be Variable, but received %s" % + (type(y))) + if convert_dtype(x.dtype) in ['float16']: + warnings.warn( + "The data type of 'x' in mul only support float16 in GPU now.") + if convert_dtype(y.dtype) in ['float16']: + warnings.warn( + "The data type of 'y' in mul only support float16 in GPU now.") + if convert_dtype(x.dtype) not in ['float16', 'float32', 'float64']: + raise TypeError( + "The data type of 'x' in mul must be float16, float32 or float64, but received %s." + % (convert_dtype(x.dtype))) + if convert_dtype(y.dtype) not in ['float16', 'float32', 'float64']: + raise TypeError( + "The data type of 'y' in mul must be float16, float32 or float64, but received %s." + % (convert_dtype(y.dtype))) + if name is None: out = helper.create_variable_for_type_inference(dtype=x.dtype) else: