[enco/tfl/frontend] Remove tensor copying code (#2559)
author윤현식/동작제어Lab(SR)/Principal Engineer/삼성전자 <hyunsik.yoon@samsung.com>
Mon, 10 Dec 2018 08:04:22 +0000 (17:04 +0900)
committer박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Mon, 10 Dec 2018 08:04:22 +0000 (17:04 +0900)
Frontend now copies tensor copy after building IR. Duplicate code is removed from GraphBuilder.

Signed-off-by: Hyun Sik Yoon <hyunsik.yoon@samsung.com>
contrib/enco/frontend/tflite/src/Op/Conv2D.cpp
contrib/enco/frontend/tflite/src/Op/DepthwiseConv2D.cpp

index 784906f..9a6984f 100644 (file)
@@ -97,18 +97,6 @@ void Conv2DGraphBuilder::build(const tflite::Operator *op, GraphBuilderContext *
   ker_obj->bag(ker_bag);
   ker_obj->layout(coco::KernelLayouts::NHWC::create(as_kernel_shape(ker_shape)));
 
-  // Create a kernel overlay for the kernel object
-  // TODO : support for other types
-  d->f32()->allocate(ker_obj);
-
-  TflBufferContext::TflBuffer<float> buffer = buffer_context.tensor_buffer<float>(graph, ker_idx);
-
-  auto ker_spn = d->f32()->weight(ker_bag);
-  for (uint32_t idx = 0; idx < buffer.len; ++idx)
-  {
-    ker_spn[idx] = buffer.ptr[idx];
-  }
-
   // Create a Load op
   auto load = op_builder(m).load(ifm_obj).pop();
 
@@ -166,17 +154,6 @@ void Conv2DGraphBuilder::build(const tflite::Operator *op, GraphBuilderContext *
     bias_obj->bag(bias_bag);
     bias_obj->layout(coco::FeatureLayouts::BC::create(ofm_obj->shape()));
 
-    // Fill bias data
-    d->f32()->allocate(bias_bag);
-
-    auto bias_span = d->f32()->weight(bias_bag);
-    buffer = buffer_context.tensor_buffer<float>(graph, bias_idx);
-    assert(buffer.ptr != nullptr && buffer.len > 0);
-    for (uint32_t idx = 0; idx < buffer.len; ++idx)
-    {
-      bias_span[idx] = buffer.ptr[idx];
-    }
-
     // Create Op of conv2d output (last_obj) + bias values(bias_obj)
     auto bias_add = op_builder(m).load(last_obj).load(bias_obj).add().pop();
 
index 3b0319e..5583d00 100644 (file)
@@ -203,17 +203,6 @@ void DepthwiseConv2DGraphBuilder::build(const tflite::Operator *op,
     bias_obj->bag(bias_bag);
     bias_obj->layout(coco::FeatureLayouts::BC::create(ofm_obj->shape()));
 
-    // Fill bias data
-    d->f32()->allocate(bias_bag);
-
-    auto bias_span = d->f32()->weight(bias_bag);
-    buffer = buffer_context.tensor_buffer<float>(graph, bias_idx);
-    assert(buffer.ptr != nullptr && buffer.len > 0);
-    for (uint32_t idx = 0; idx < buffer.len; ++idx)
-    {
-      bias_span[idx] = buffer.ptr[idx];
-    }
-
     // Create Op of conv2d output (last_obj) + bias values(bias_obj)
     auto bias_add = op_builder(m).load(last_obj).load(bias_obj).add().pop();