提交 e3357e41 编写于 作者: 李寅

Do nothing when resize image

上级 97603f1e
...@@ -62,7 +62,6 @@ bool HexagonControlWrapper::SetupGraph(const NetDef &net_def) { ...@@ -62,7 +62,6 @@ bool HexagonControlWrapper::SetupGraph(const NetDef &net_def) {
// const node // const node
std::thread const_thread([&]() { std::thread const_thread([&]() {
std::cout << "thread function\n";
std::vector<hexagon_nn_const_node> const_node_list; std::vector<hexagon_nn_const_node> const_node_list;
for (const ConstTensor &const_tensor: net_def.tensors()) { for (const ConstTensor &const_tensor: net_def.tensors()) {
std::vector<int> tensor_shape(const_tensor.dims().begin(), std::vector<int> tensor_shape(const_tensor.dims().begin(),
......
...@@ -169,6 +169,7 @@ class Tensor { ...@@ -169,6 +169,7 @@ class Tensor {
inline void Resize(const std::vector<index_t> &shape) { inline void Resize(const std::vector<index_t> &shape) {
shape_ = shape; shape_ = shape;
image_shape_.clear();
if (buffer_ != nullptr) { if (buffer_ != nullptr) {
MACE_CHECK(!has_opencl_image(), "Cannot resize image, use ResizeImage."); MACE_CHECK(!has_opencl_image(), "Cannot resize image, use ResizeImage.");
buffer_->Resize(raw_size()); buffer_->Resize(raw_size());
...@@ -181,24 +182,25 @@ class Tensor { ...@@ -181,24 +182,25 @@ class Tensor {
inline void ResizeImage(const std::vector<index_t> &shape, inline void ResizeImage(const std::vector<index_t> &shape,
const std::vector<size_t> &image_shape) { const std::vector<size_t> &image_shape) {
shape_ = shape; shape_ = shape;
image_shape_ = image_shape;
if (buffer_ == nullptr) { if (buffer_ == nullptr) {
buffer_ = new Image(image_shape, dtype_); buffer_ = new Image(image_shape, dtype_);
is_buffer_owner_ = true; is_buffer_owner_ = true;
} else { } else {
MACE_CHECK(has_opencl_image(), "Cannot ResizeImage buffer, use Resize."); MACE_CHECK(has_opencl_image(), "Cannot ResizeImage buffer, use Resize.");
Image *image = dynamic_cast<Image*>(buffer_); Image *image = dynamic_cast<Image*>(buffer_);
MACE_CHECK(shape[0] <= image->image_shape()[0] MACE_CHECK(image_shape[0] <= image->image_shape()[0]
&& shape[1] <= image->image_shape()[1], && image_shape[1] <= image->image_shape()[1],
"tensor (source op ", "tensor (source op ",
name_, name_,
"): current image shape: ", "): current physical image shape: ",
image->image_shape()[0], image->image_shape()[0],
", ", ", ",
image->image_shape()[1], image->image_shape()[1],
" < resize tensor shape: ", " < logical image shape: ",
shape[0], image_shape[0],
", ", ", ",
shape[1]); image_shape[1]);
} }
} }
...@@ -212,8 +214,7 @@ class Tensor { ...@@ -212,8 +214,7 @@ class Tensor {
delete buffer_; delete buffer_;
buffer_ = nullptr; buffer_ = nullptr;
} }
ResizeImage(other->shape(), ResizeImage(other->shape(), other->image_shape_);
dynamic_cast<Image *>(other->UnderlyingBuffer())->image_shape());
} else { } else {
if (is_buffer_owner_ && buffer_ != nullptr && has_opencl_image()) { if (is_buffer_owner_ && buffer_ != nullptr && has_opencl_image()) {
delete buffer_; delete buffer_;
...@@ -307,6 +308,7 @@ class Tensor { ...@@ -307,6 +308,7 @@ class Tensor {
Allocator *allocator_; Allocator *allocator_;
DataType dtype_; DataType dtype_;
std::vector<index_t> shape_; std::vector<index_t> shape_;
std::vector<size_t > image_shape_;
BufferBase *buffer_; BufferBase *buffer_;
BufferSlice buffer_slice_; BufferSlice buffer_slice_;
bool is_buffer_owner_; bool is_buffer_owner_;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册