diff --git a/python/paddle/incubate/autograd/composite_rules.py b/python/paddle/incubate/autograd/composite_rules.py index 2300cbccfa4df455e635a0e067424d7e4f70a248..ae6143b4cc1ae3d387616927355a4c03e6d8ae13 100644 --- a/python/paddle/incubate/autograd/composite_rules.py +++ b/python/paddle/incubate/autograd/composite_rules.py @@ -355,10 +355,14 @@ def dropout_composite(x, seed_tensor, p, is_test, mode, seed, fix_seed): def bernoulli(shape, dtype, p, seed=0): + from paddle.fluid.data_feeder import convert_dtype + + # TODO(jiabin) Fix uniform doesn't support float16 error in CINN + new_dtype = "float32" if convert_dtype(dtype) == "float16" else dtype return cast( greater_equal( - uniform(shape, dtype, min=0.0, max=1.0, seed=seed), - fill_constant(shape, dtype, p), + uniform(shape, new_dtype, min=0.0, max=1.0, seed=seed), + fill_constant(shape, new_dtype, p), ), dtype, )