diff --git a/mediapipe/framework/formats/tensor.cc b/mediapipe/framework/formats/tensor.cc index 1dbd8f8a..9d75bcba 100644 --- a/mediapipe/framework/formats/tensor.cc +++ b/mediapipe/framework/formats/tensor.cc @@ -399,6 +399,7 @@ void Tensor::Move(Tensor* src) { valid_ = src->valid_; src->valid_ = kValidNone; shape_ = src->shape(); + quantization_parameters_ = src->quantization_parameters(); element_type_ = src->element_type(); src->element_type_ = ElementType::kNone; // Mark as invalidated. cpu_buffer_ = src->cpu_buffer_; diff --git a/mediapipe/framework/formats/tensor_test.cc b/mediapipe/framework/formats/tensor_test.cc index 44468cb8..4ad4e18e 100644 --- a/mediapipe/framework/formats/tensor_test.cc +++ b/mediapipe/framework/formats/tensor_test.cc @@ -42,7 +42,8 @@ TEST(Cpu, TestMemoryAllocation) { } TEST(Cpu, TestTensorMove) { - Tensor t1(Tensor::ElementType::kFloat32, Tensor::Shape{4, 3, 2, 3}); + Tensor t1(Tensor::ElementType::kFloat32, Tensor::Shape{4, 3, 2, 3}, + Tensor::QuantizationParameters(0.5, 127)); void* p1 = t1.GetCpuWriteView().buffer(); EXPECT_NE(p1, nullptr); Tensor t2(std::move(t1)); @@ -50,6 +51,10 @@ TEST(Cpu, TestTensorMove) { EXPECT_EQ(t1.bytes(), 0); // NOLINT void* p2 = t2.GetCpuWriteView().buffer(); EXPECT_EQ(p1, p2); + EXPECT_EQ(t1.quantization_parameters().scale, + t2.quantization_parameters().scale); + EXPECT_EQ(t1.quantization_parameters().zero_point, + t2.quantization_parameters().zero_point); } TEST(Cpu, TestViewMove) {