diff --git a/paddle/phi/kernels/cpu/unique_kernel.cc b/paddle/phi/kernels/cpu/unique_kernel.cc index 834f05f73e2289de76d256b1fd90e54454f22320..15c19b24444dd7927c8c27d31ae2cd37a131d8c4 100644 --- a/paddle/phi/kernels/cpu/unique_kernel.cc +++ b/paddle/phi/kernels/cpu/unique_kernel.cc @@ -96,6 +96,7 @@ void UniqueRawKernel(const Context& context, return_counts)); } else { int axis_value = axis[0]; + axis_value = (axis_value == -1) ? (x.dims().size() - 1) : axis_value; phi::VisitDataTypeTiny( dtype, phi::funcs::UniqueDimFunctor(context, diff --git a/paddle/phi/kernels/gpu/unique_kernel.cu b/paddle/phi/kernels/gpu/unique_kernel.cu index 9938d949c59c6f61111275968512bad38df48923..316fe1fae711637af9cafb7ec0c06693aae7f0a6 100644 --- a/paddle/phi/kernels/gpu/unique_kernel.cu +++ b/paddle/phi/kernels/gpu/unique_kernel.cu @@ -563,6 +563,7 @@ void UniqueRawKernel(const Context& context, } else { // 'axis' is required. int axis_value = axis[0]; + axis_value = (axis_value == -1) ? (x.dims().size() - 1) : axis_value; phi::VisitDataTypeTiny(dtype, UniqueDimsCUDAFunctor(context, x,