diff --git a/paddle/fluid/operators/optimizers/adam_op_npu.cc b/paddle/fluid/operators/optimizers/adam_op_npu.cc index b024aca21c38214f115c80c3e034fbcea8bfeef9..a922a2bca66ad685bd4de341d0fcfd07b4bd0197 100644 --- a/paddle/fluid/operators/optimizers/adam_op_npu.cc +++ b/paddle/fluid/operators/optimizers/adam_op_npu.cc @@ -15,6 +15,7 @@ limitations under the License. */ #include #include +#include "paddle/fluid/framework/tensor_util.h" #include "paddle/fluid/operators/npu_op_runner.h" #include "paddle/fluid/operators/optimizers/adam_op.h" @@ -122,8 +123,9 @@ class AdamNPUKernel : public framework::OpKernel { FillNpuTensorWithConstant(&beta2_tensor, beta2); Tensor epsilon_tensor(framework::proto::VarType::FP32); - epsilon_tensor.mutable_data({1}, ctx.GetPlace()); - FillNpuTensorWithConstant(&epsilon_tensor, epsilon); + TensorFromVector(std::vector{epsilon}, + ctx.template device_context(), + &epsilon_tensor); auto stream = ctx.template device_context() .stream();