From df5bc787022907d7a0acfe3b1089c7d93febdb61 Mon Sep 17 00:00:00 2001 From: dzhwinter Date: Thu, 15 Jun 2017 12:27:20 +0800 Subject: [PATCH] "fix tensor shared_ptr" --- paddle/optimizer/Tensor.h | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/paddle/optimizer/Tensor.h b/paddle/optimizer/Tensor.h index 49b8dadaae..80a8c93081 100644 --- a/paddle/optimizer/Tensor.h +++ b/paddle/optimizer/Tensor.h @@ -5,7 +5,6 @@ #include #include -#include "paddle/math/MemoryHandle.h" #include "paddle/utils/Common.h" #include "paddle/utils/Logging.h" @@ -15,17 +14,16 @@ namespace optimizer { template class TensorT { public: - TensorT(size_t size) - : TensorT(std::make_shared(size * sizeof(float)), size) { + TensorT(size_t size) : height_(1), width_(size) { + data_ptr_ = std::shared_ptr(new T[size], std::default_delete()); + data_ = data_ptr_.get(); } - TensorT(CpuMemHandlePtr handle, size_t size) - : height_(1), - width_(size), - data_(reinterpret_cast(handle->getBuf())) {} - TensorT(T* data, size_t size) : height_(1), width_(size), data_(data) {} + TensorT(T* data, size_t size) + : height_(1), width_(size), data_ptr_(nullptr), data_(data) {} - TensorT(T* data, size_t h, size_t w) : height_(h), width_(w), data_(data) {} + TensorT(T* data, size_t h, size_t w) + : height_(h), width_(w), data_ptr_(nullptr), data_(data) {} virtual ~TensorT() {} @@ -45,6 +43,7 @@ public: protected: size_t height_; size_t width_; + std::shared_ptr data_ptr_; T* data_; };