提交 c34b93dd 编写于 作者: G gangliao 提交者: GitHub

Merge pull request #3381 from Superjom/tensor-slight-change

 tensor slight improve
...@@ -79,11 +79,11 @@ class Tensor { ...@@ -79,11 +79,11 @@ class Tensor {
inline const DDim& dims() const; inline const DDim& dims() const;
/*! Resize the dimensions of the memory block. */ /*! Resize the dimensions of the memory block. */
inline void Resize(const DDim& dims); inline Tensor& Resize(const DDim& dims);
/*! The internal of two tensors share the same memory block. */ /*! The internal of two tensors share the same memory block. */
template <typename T> template <typename T>
inline void ShareDataWith(const Tensor& src); inline Tensor& ShareDataWith(const Tensor& src);
/** /**
* @brief Copy the content of external tensor to a new place. * @brief Copy the content of external tensor to a new place.
......
...@@ -23,9 +23,11 @@ template <typename T> ...@@ -23,9 +23,11 @@ template <typename T>
inline void Tensor::check_memory_size() const { inline void Tensor::check_memory_size() const {
PADDLE_ENFORCE_NOT_NULL( PADDLE_ENFORCE_NOT_NULL(
holder_, "Tenosr holds no memory. Call Tensor::mutable_data first."); holder_, "Tenosr holds no memory. Call Tensor::mutable_data first.");
PADDLE_ENFORCE_GE(holder_->size(), product(dims_) * sizeof(T) + offset_, PADDLE_ENFORCE_GE(
holder_->size(), product(dims_) * sizeof(T) + offset_,
"Tensor's dims_ is out of bound. Call Tensor::mutable_data " "Tensor's dims_ is out of bound. Call Tensor::mutable_data "
"first to re-allocate memory."); "first to re-allocate memory.\n"
"or maybe the required data-type mismatches the data already stored.");
} }
template <typename T> template <typename T>
...@@ -78,9 +80,10 @@ inline T* Tensor::mutable_data(platform::Place place) { ...@@ -78,9 +80,10 @@ inline T* Tensor::mutable_data(platform::Place place) {
} }
template <typename T> template <typename T>
inline void Tensor::ShareDataWith(const Tensor& src) { inline Tensor& Tensor::ShareDataWith(const Tensor& src) {
src.check_memory_size<T>(); src.check_memory_size<T>();
*this = src; *this = src;
return *this;
} }
template <typename T> template <typename T>
...@@ -136,7 +139,10 @@ inline Tensor Tensor::Slice(const int& begin_idx, const int& end_idx) const { ...@@ -136,7 +139,10 @@ inline Tensor Tensor::Slice(const int& begin_idx, const int& end_idx) const {
return dst; return dst;
} }
inline void Tensor::Resize(const DDim& dims) { dims_ = dims; } inline Tensor& Tensor::Resize(const DDim& dims) {
dims_ = dims;
return *this;
}
inline const DDim& Tensor::dims() const { return dims_; } inline const DDim& Tensor::dims() const { return dims_; }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册