@@ -398,7 +398,7 @@ void SetTensorFromPyArrayT(
398
398
self->ResetHolderWithType (holder, framework::TransToPhiDataType (type));
399
399
} else {
400
400
auto dst = self->mutable_data <T>(place);
401
- std::memcpy (dst, array.data (), array.nbytes ( ));
401
+ std::memcpy (dst, array.data (), array.size ()* sizeof (T ));
402
402
}
403
403
} else if (paddle::platform::is_xpu_place (place)) {
404
404
#ifdef PADDLE_WITH_XPU
@@ -427,10 +427,10 @@ void SetTensorFromPyArrayT(
427
427
// IPU does not store Tensor data, Tensor will be created on CPU
428
428
if (!self->initialized ()) {
429
429
auto dst = self->mutable_data <T>(place);
430
- std::memcpy (dst, array.data (), array.nbytes ( ));
430
+ std::memcpy (dst, array.data (), array.size ()* sizeof (T ));
431
431
} else {
432
432
auto dst = self->mutable_data <T>(self->place ());
433
- std::memcpy (dst, array.data (), array.nbytes ( ));
433
+ std::memcpy (dst, array.data (), array.size ()* sizeof (T ));
434
434
}
435
435
}
436
436
#else
@@ -473,7 +473,7 @@ void SetTensorFromPyArrayT(
473
473
474
474
} else if (paddle::platform::is_cuda_pinned_place (place)) {
475
475
auto dst = self->mutable_data <T>(place);
476
- std::memcpy (dst, array.data (), array.nbytes ( ));
476
+ std::memcpy (dst, array.data (), array.size ()* sizeof (T ));
477
477
} else {
478
478
PADDLE_THROW (platform::errors::InvalidArgument (
479
479
" Incompatible place type: Tensor.set() supports "
0 commit comments