diff --git a/mace/core/runtime/hexagon/hexagon_control_wrapper.cc b/mace/core/runtime/hexagon/hexagon_control_wrapper.cc index aa55fd0cd044e7e08455287adf454c9e703ab27b..8735f52900c148a6d777f5810a1c8c640fa23968 100644 --- a/mace/core/runtime/hexagon/hexagon_control_wrapper.cc +++ b/mace/core/runtime/hexagon/hexagon_control_wrapper.cc @@ -62,7 +62,6 @@ bool HexagonControlWrapper::SetupGraph(const NetDef &net_def) { // const node std::thread const_thread([&]() { - std::cout << "thread function\n"; std::vector const_node_list; for (const ConstTensor &const_tensor: net_def.tensors()) { std::vector tensor_shape(const_tensor.dims().begin(), diff --git a/mace/core/tensor.h b/mace/core/tensor.h index b17db1003fb6bd6a4bbb716391a292759d903f06..7adc6a586c08f73250a9aa2796665a2a85565077 100644 --- a/mace/core/tensor.h +++ b/mace/core/tensor.h @@ -169,6 +169,7 @@ class Tensor { inline void Resize(const std::vector &shape) { shape_ = shape; + image_shape_.clear(); if (buffer_ != nullptr) { MACE_CHECK(!has_opencl_image(), "Cannot resize image, use ResizeImage."); buffer_->Resize(raw_size()); @@ -181,24 +182,25 @@ class Tensor { inline void ResizeImage(const std::vector &shape, const std::vector &image_shape) { shape_ = shape; + image_shape_ = image_shape; if (buffer_ == nullptr) { buffer_ = new Image(image_shape, dtype_); is_buffer_owner_ = true; } else { MACE_CHECK(has_opencl_image(), "Cannot ResizeImage buffer, use Resize."); Image *image = dynamic_cast(buffer_); - MACE_CHECK(shape[0] <= image->image_shape()[0] - && shape[1] <= image->image_shape()[1], + MACE_CHECK(image_shape[0] <= image->image_shape()[0] + && image_shape[1] <= image->image_shape()[1], "tensor (source op ", name_, - "): current image shape: ", + "): current physical image shape: ", image->image_shape()[0], ", ", image->image_shape()[1], - " < resize tensor shape: ", - shape[0], + " < logical image shape: ", + image_shape[0], ", ", - shape[1]); + image_shape[1]); } } @@ -212,8 +214,7 @@ class Tensor { delete buffer_; buffer_ = nullptr; } - ResizeImage(other->shape(), - dynamic_cast(other->UnderlyingBuffer())->image_shape()); + ResizeImage(other->shape(), other->image_shape_); } else { if (is_buffer_owner_ && buffer_ != nullptr && has_opencl_image()) { delete buffer_; @@ -307,6 +308,7 @@ class Tensor { Allocator *allocator_; DataType dtype_; std::vector shape_; + std::vector image_shape_; BufferBase *buffer_; BufferSlice buffer_slice_; bool is_buffer_owner_;