diff --git a/tf_adapter/kernels/geop_npu.cc b/tf_adapter/kernels/geop_npu.cc index 75c5a72b32095e3e2d2d8aa3331b376a4d90e31b..127ac0e520a42fc2235a1178ed0441de2ba41e00 100644 --- a/tf_adapter/kernels/geop_npu.cc +++ b/tf_adapter/kernels/geop_npu.cc @@ -602,7 +602,7 @@ void GeOp::GetExecGraphId(uint32_t &cache_graph_id, std::vector inp } } -PartialTensorShape GeOp::MakeCompatShape(const PartialTensorShape &a, const PartialTensorShape &b) { +PartialTensorShape GeOp::MakeCompatShape(const PartialTensorShape &a, const PartialTensorShape &b) const { const static auto kUnknownRankShape = PartialTensorShape(); if (a.dims() != b.dims()) { return kUnknownRankShape; diff --git a/tf_adapter/kernels/geop_npu.h b/tf_adapter/kernels/geop_npu.h index 647298a0dcc1b17fe94c251f4d27f0fd9710bf6d..0457e82bfbe2a426e3a6bb8bda53e553ffa2f19e 100644 --- a/tf_adapter/kernels/geop_npu.h +++ b/tf_adapter/kernels/geop_npu.h @@ -128,7 +128,7 @@ private: bool IsDynamicConfig(); - PartialTensorShape MakeCompatShape(const PartialTensorShape &a, const PartialTensorShape &b); + PartialTensorShape MakeCompatShape(const PartialTensorShape &a, const PartialTensorShape &b) const; bool MaybeUpdateShape(OpKernelContext *const ctx); diff --git a/tf_adapter/kernels/om_executor.cc b/tf_adapter/kernels/om_executor.cc index 8db3c048e09b5956db640f1e8b3c3dd63ae0db13..3844e4c9cee6eae18e218adb05e0af434be32b06 100644 --- a/tf_adapter/kernels/om_executor.cc +++ b/tf_adapter/kernels/om_executor.cc @@ -156,7 +156,7 @@ Status ModelProcess::Execute(const std::vector &inputs, std::vector &inputs) { +Status ModelProcess::ProcessInput(const std::vector &inputs) const { const size_t model_input_size = aclmdlGetNumInputs(model_desc_); if (inputs.size() < model_input_size) { ADP_LOG(ERROR) << "input num " << inputs.size() << " is smaller than model input num " << model_input_size; diff --git a/tf_adapter/kernels/om_executor.h b/tf_adapter/kernels/om_executor.h index 2a6c334af3a6b19d43a605824b5d80f0b2cea181..ff76a20263db915baedf40dd82e97aa6b963f0ba 100644 --- a/tf_adapter/kernels/om_executor.h +++ b/tf_adapter/kernels/om_executor.h @@ -50,7 +50,7 @@ private: Status CreateOutput(); - Status ProcessInput(const std::vector &inputs); + Status ProcessInput(const std::vector &inputs) const; Status Execute(const std::vector &inputs, std::vector &outputs); diff --git a/tf_adapter/tests/st/kernels/testcase/geop_npu_test.cc b/tf_adapter/tests/st/kernels/testcase/geop_npu_test.cc index 75ac7fbddf95ef676b05d16fe737feb4355fe656..ec963b96d88797698731b5ca8aae248652251068 100644 --- a/tf_adapter/tests/st/kernels/testcase/geop_npu_test.cc +++ b/tf_adapter/tests/st/kernels/testcase/geop_npu_test.cc @@ -448,5 +448,29 @@ TEST_F(GeOpTest, BuildOutputTensorInfo) { gtl::InlinedVector inputs{TensorValue(&in)}; EXPECT_TRUE(GeOpRunGraphAsync(graph_pbtxt_path, inputs, node_def, "GeOp1_0").ok()); } +TEST_F(GeOpTest, test_MakeCompatShape) { + GeOp *geop_node = reinterpret_cast(0x100); + PartialTensorShape shape_a; + std::vector dims_a{1, 2}; + PartialTensorShape::MakePartialShape(dims_a.data(), static_cast(dims_a.size()), &shape_a); + PartialTensorShape shape_b; + std::vector dims_b{1, 3}; + PartialTensorShape::MakePartialShape(dims_b.data(), static_cast(dims_b.size()), &shape_b); + auto shape1 = geop_node->MakeCompatShape(shape_a, shape_b); + PartialTensorShape shape; + std::vector dims{-1, -1}; + PartialTensorShape::MakePartialShape(dims.data(), static_cast(dims.size()), &shape); + EXPECT_EQ(shape1.IsCompatibleWith(shape), true); + + PartialTensorShape shape_c; + std::vector dims_c{1, 2}; + PartialTensorShape::MakePartialShape(dims_c.data(), static_cast(dims_c.size()), &shape_c); + PartialTensorShape shape_d; + std::vector dims_d{1, 2, 3}; + PartialTensorShape::MakePartialShape(dims_d.data(), static_cast(dims_d.size()), &shape_d); + auto shape2 = geop_node->MakeCompatShape(shape_c, shape_d); + PartialTensorShape kUnknownRankShape = PartialTensorShape(); + EXPECT_EQ(shape2.IsCompatibleWith(kUnknownRankShape), true); +} } } //end tensorflow