Skip to content

Commit 94c6682

Browse files
authored
fix to_tensor bug (#67795)
1 parent 6267a2b commit 94c6682

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

paddle/fluid/pybind/tensor_py.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ void SetTensorFromPyArrayT(
398398
self->ResetHolderWithType(holder, framework::TransToPhiDataType(type));
399399
} else {
400400
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));
402402
}
403403
} else if (paddle::platform::is_xpu_place(place)) {
404404
#ifdef PADDLE_WITH_XPU
@@ -427,10 +427,10 @@ void SetTensorFromPyArrayT(
427427
// IPU does not store Tensor data, Tensor will be created on CPU
428428
if (!self->initialized()) {
429429
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));
431431
} else {
432432
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));
434434
}
435435
}
436436
#else
@@ -473,7 +473,7 @@ void SetTensorFromPyArrayT(
473473

474474
} else if (paddle::platform::is_cuda_pinned_place(place)) {
475475
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));
477477
} else {
478478
PADDLE_THROW(platform::errors::InvalidArgument(
479479
"Incompatible place type: Tensor.set() supports "

0 commit comments

Comments
 (0)