diff --git a/mindspore/ccsrc/backend/kernel_compiler/cpu/multinomial_cpu_kernel.cc b/mindspore/ccsrc/backend/kernel_compiler/cpu/multinomial_cpu_kernel.cc index ecd0fe84a0c..3bef950e10c 100644 --- a/mindspore/ccsrc/backend/kernel_compiler/cpu/multinomial_cpu_kernel.cc +++ b/mindspore/ccsrc/backend/kernel_compiler/cpu/multinomial_cpu_kernel.cc @@ -78,10 +78,11 @@ bool MultinomialGpuKernel::Launch(const std::vector &inputs, } // Normalize the cumulative array. - float sum = cumulative_value[num_col - 1]; + float sum = cumulative_value[(i + 1) * num_col - 1]; if (sum != 0) { for (int k = 0; k < num_col; ++k) { - cumulative_value[k] /= sum; + size_t index = i * num_col + k; + cumulative_value[index] /= sum; } } @@ -113,7 +114,7 @@ bool MultinomialGpuKernel::Launch(const std::vector &inputs, begin = pivot + 1; } } - output[i * num_col + n] = begin; + output[i * num_sample + n] = begin; } } return true;