[moco/tf] Simplify implementation of Const op (#3651)
author남궁석/On-Device Lab(SR)/Engineer/삼성전자 <sk.namkoong@samsung.com>
Mon, 3 Jun 2019 02:26:46 +0000 (11:26 +0900)
committer박세희/On-Device Lab(SR)/Principal Engineer/삼성전자 <saehie.park@samsung.com>
Mon, 3 Jun 2019 02:26:46 +0000 (11:26 +0900)
This commit will simplify the implementation of Const op in moco tf frontend.

Signed-off-by: Seok NamKoong <sk.namkoong@samsung.com>
contrib/moco/lib/frontend/tf/src/Op/Const.cpp

index 4f643d8..4d31491 100644 (file)
@@ -36,21 +36,7 @@ void read_value_float32(loco::ConstGen *const_node, int num_elements,
 
   int32_t input_elements = input_tensor.float_val_size();
 
-  if (input_elements == 1)
-  {
-    for (int32_t i = 0; i < num_elements; i++)
-    {
-      const_node->at<loco::DataType::FLOAT32>(i) = input_tensor.float_val(0);
-    }
-  }
-  else if (input_elements == num_elements)
-  {
-    for (int32_t i = 0; i < input_elements; i++)
-    {
-      const_node->at<loco::DataType::FLOAT32>(i) = input_tensor.float_val(i);
-    }
-  }
-  else if (input_tensor.tensor_content().size() == num_elements * sizeof(float))
+  if (input_tensor.tensor_content().size() == num_elements * sizeof(float))
   {
     const std::string &str_content = input_tensor.tensor_content();
     const float *float_ptr = reinterpret_cast<const float *>(str_content.c_str());
@@ -59,16 +45,16 @@ void read_value_float32(loco::ConstGen *const_node, int num_elements,
       const_node->at<loco::DataType::FLOAT32>(i) = *(float_ptr + i);
     }
   }
-  else if (0 < input_elements && input_elements < num_elements)
+  else if (0 < input_elements && input_elements <= num_elements)
   {
     for (int32_t i = 0; i < input_elements; i++)
     {
       const_node->at<loco::DataType::FLOAT32>(i) = input_tensor.float_val(i);
     }
-    float lastfill = input_tensor.float_val(input_elements - 1);
+
     for (int32_t i = input_elements; i < num_elements; i++)
     {
-      const_node->at<loco::DataType::FLOAT32>(i) = lastfill;
+      const_node->at<loco::DataType::FLOAT32>(i) = input_tensor.float_val(input_elements - 1);
     }
   }
   else