|
|
|
@ -24,10 +24,10 @@ template <typename T>
|
|
|
|
|
inline const T* Tensor::data() const {
|
|
|
|
|
check_memory_size();
|
|
|
|
|
bool valid =
|
|
|
|
|
std::is_same<T, void>::value || type_ == DataTypeTrait<T>::DataType;
|
|
|
|
|
std::is_same<T, void>::value || type_ == DataTypeTrait<T>::DataType();
|
|
|
|
|
PADDLE_ENFORCE(
|
|
|
|
|
valid, "Tensor holds the wrong type, it holds %s, but desires to be %s",
|
|
|
|
|
DataTypeToString(type_), DataTypeToString(DataTypeTrait<T>::DataType));
|
|
|
|
|
DataTypeToString(type_), DataTypeToString(DataTypeTrait<T>::DataType()));
|
|
|
|
|
|
|
|
|
|
return reinterpret_cast<const T*>(
|
|
|
|
|
reinterpret_cast<uintptr_t>(holder_->ptr()) + offset_);
|
|
|
|
@ -39,10 +39,10 @@ template <typename T>
|
|
|
|
|
inline T* Tensor::data() {
|
|
|
|
|
check_memory_size();
|
|
|
|
|
bool valid =
|
|
|
|
|
std::is_same<T, void>::value || type_ == DataTypeTrait<T>::DataType;
|
|
|
|
|
std::is_same<T, void>::value || type_ == DataTypeTrait<T>::DataType();
|
|
|
|
|
PADDLE_ENFORCE(
|
|
|
|
|
valid, "Tensor holds the wrong type, it holds %s, but desires to be %s",
|
|
|
|
|
DataTypeToString(type_), DataTypeToString(DataTypeTrait<T>::DataType));
|
|
|
|
|
DataTypeToString(type_), DataTypeToString(DataTypeTrait<T>::DataType()));
|
|
|
|
|
return reinterpret_cast<T*>(reinterpret_cast<uintptr_t>(holder_->ptr()) +
|
|
|
|
|
offset_);
|
|
|
|
|
}
|
|
|
|
@ -59,7 +59,7 @@ template <typename T>
|
|
|
|
|
inline T* Tensor::mutable_data(platform::Place place, size_t requested_size) {
|
|
|
|
|
static_assert(std::is_pod<T>::value, "T must be POD");
|
|
|
|
|
return reinterpret_cast<T*>(
|
|
|
|
|
mutable_data(place, DataTypeTrait<T>::DataType, requested_size));
|
|
|
|
|
mutable_data(place, DataTypeTrait<T>::DataType(), requested_size));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
inline Tensor ReshapeToMatrix(const Tensor& src, int num_col_dims) {
|
|
|
|
|