[Layout] Add warning when setting data info
authorDongju Chae <dongju.chae@samsung.com>
Thu, 5 Aug 2021 02:54:29 +0000 (11:54 +0900)
committer채동주/On-Device Lab(SR)/Staff Engineer/삼성전자 <dongju.chae@samsung.com>
Thu, 5 Aug 2021 05:38:58 +0000 (14:38 +0900)
This patch adds warning messages when setting data info of
raw tensor data.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
src/core/ne-model.cc
src/core/ne-model.h
tests/unittests/ne_core_handler_test.cc

index 287edd7fa528f14117ef59a5f83ce0c0146753d4..b9af613525e0eb09cb8fdcff7e9c5f97d11a17dd 100644 (file)
@@ -387,6 +387,22 @@ Model::setDataInfo (const tensors_data_info *in, const tensors_data_info *out) {
     return -EINVAL;
   }
 
+  for (uint32_t idx = 0; idx < in->num_info; idx++) {
+    if (meta_->getInputSegmentLayout (idx) == DATA_LAYOUT_RAW &&
+        in->info[idx].layout != DATA_LAYOUT_MODEL &&
+        in->info[idx].layout != DATA_LAYOUT_NHWC &&
+        in->info[idx].layout != DATA_LAYOUT_NCHW)
+      logwarn (TAG, "input[%u] is raw data. skip layout conversion\n", idx);
+  }
+
+  for (uint32_t idx = 0; idx < out->num_info; idx++) {
+    if (meta_->getOutputSegmentLayout (idx) == DATA_LAYOUT_RAW &&
+        out->info[idx].layout != DATA_LAYOUT_MODEL &&
+        out->info[idx].layout != DATA_LAYOUT_NHWC &&
+        out->info[idx].layout != DATA_LAYOUT_NCHW)
+      logwarn (TAG, "output[%u] is raw data. skip layout conversion\n", idx);
+  }
+
   in_ = *in;
   out_ = *out;
 
index a8c8f06b25789845ec290b00075af63431c893e0..c6d0787b03460f78862f097481f4ef8ba9d15725 100644 (file)
@@ -359,9 +359,11 @@ class Metadata_v3 : public Metadata {
   uint32_t getDspmSize () const override { return meta_->dspm_size; }
 
   data_layout getInputSegmentLayout (uint32_t idx) const override {
+    assert (idx < getInputNum ());
     return meta_->input_seg_layout[idx];
   }
   data_layout getOutputSegmentLayout (uint32_t idx) const override {
+    assert (idx < getOutputNum ());
     return meta_->output_seg_layout[idx];
   }
 
index dcc43160aeb686b2c34a9af31157e39c8c1224b4..421a88491be60b04aab3f91e3caf4e22451a3f38 100644 (file)
@@ -630,8 +630,8 @@ TEST (ne_core_handler_test, handler_set_data_info) {
 
   EXPECT_EQ (handler->registerModel (&model_buf, &modelid), 0);
 
-  tensors_data_info in;
-  tensors_data_info out;
+  tensors_data_info in = {0};
+  tensors_data_info out = {0};
 
   EXPECT_EQ (handler->setDataInfo (modelid, &in, &in), 0);
   EXPECT_EQ (handler->setDataInfo (modelid, &in, &out), 0);
@@ -657,8 +657,8 @@ TEST (ne_core_handler_test, handler_set_data_info_invalid_args_n) {
   generic_buffer model_buf = {0};
   create_model_buffer (model_buf);
 
-  tensors_data_info in;
-  tensors_data_info out;
+  tensors_data_info in = {0};
+  tensors_data_info out = {0};
 
   EXPECT_NE (handler->setDataInfo (0, &in, &out), 0);
   EXPECT_NE (handler->setDataInfo (1, &in, &out), 0);