[mir2loco] Remove support for PoolOp (#7071)
authorСергей Баранников/AI Tools Lab /SRR/Engineer/삼성전자 <s.barannikov@samsung.com>
Mon, 2 Sep 2019 10:28:26 +0000 (13:28 +0300)
committerAlexander Efimov/AI Tools Lab/./Samsung Electronics <a.efimov@samsung.com>
Mon, 2 Sep 2019 10:28:26 +0000 (13:28 +0300)
This operation was replaced by `AvgPool2DOp` and `MaxPool2DOp`.

Signed-off-by: Sergei Barannikov <s.barannikov@samsung.com>
compiler/mir2loco/include/mir2loco.h
compiler/mir2loco/src/mir2loco.cpp
compiler/mir2loco/src/mir2loco.test.cpp

index 56099f5..0bca70d 100644 (file)
@@ -36,7 +36,6 @@ public:
   void visit(mir::ops::MaxPool2DOp &op) override;
   void visit(mir::ops::MulOp &op) override;
   void visit(mir::ops::OutputOp &op) override;
-  void visit(mir::ops::PoolOp &op) override;
   void visit(mir::ops::ReluOp &op) override;
   void visit(mir::ops::ReshapeOp &op) override;
   void visit(mir::ops::SoftmaxOp &op) override;
index f8bc0cc..06586a0 100644 (file)
@@ -24,7 +24,6 @@
 #include "mir/ops/DepthwiseConv2DOp.h"
 #include "mir/ops/MaxPool2DOp.h"
 #include "mir/ops/MulOp.h"
-#include "mir/ops/PoolOp.h"
 #include "mir/ops/ReluOp.h"
 #include "mir/ops/ReshapeOp.h"
 #include "mir/ops/SoftmaxOp.h"
@@ -471,60 +470,6 @@ void Transformer::visit(mir::ops::OutputOp &op)
   _mir2loco_map.emplace(&op, push_node);
 }
 
-void Transformer::visit(mir::ops::PoolOp &op)
-{
-  loco::Node *pool_node;
-  // Get Input
-  auto loco_it = _mir2loco_map.find(op.getInput(0)->getProducer()->getNode());
-  assert(loco_it != _mir2loco_map.end()); // can't find the input
-  // FeatureEncode
-  auto encode_node = createNHWCFeatureEncode(_loco_graph.get());
-  encode_node->input(loco_it->second);
-
-  switch (op.getPoolingType())
-  {
-    case mir::ops::PoolOp::PoolingType::AVG:
-    {
-      auto avg_pool_node = _loco_graph->nodes()->create<loco::AvgPool2D>();
-      // Set Input
-      avg_pool_node->ifm(encode_node);
-      // Set convention (like tensorflow)
-      avg_pool_node->convention(loco::AvgPool2D::Convention::Valid);
-
-      setupWindow(op.getWindowShape(), avg_pool_node->window());
-      setupStride(op.getStrides(), avg_pool_node->stride());
-      setupPad(op.getPaddingBefore(), op.getPaddingAfter(), avg_pool_node->pad());
-
-      pool_node = avg_pool_node;
-      break;
-    }
-    case mir::ops::PoolOp::PoolingType::MAX:
-    {
-      auto max_pool_node = _loco_graph->nodes()->create<loco::MaxPool2D>();
-      // Set Input
-      max_pool_node->ifm(encode_node);
-
-      setupWindow(op.getWindowShape(), max_pool_node->window());
-      setupStride(op.getStrides(), max_pool_node->stride());
-      setupPad(op.getPaddingBefore(), op.getPaddingAfter(), max_pool_node->pad());
-
-      pool_node = max_pool_node;
-      break;
-    }
-    case mir::ops::PoolOp::PoolingType::MIN:
-      throw std::runtime_error("Min pooling not supported!");
-    default:
-      assert(false && "Unknown pooling type!");
-  }
-  // FeatureDecode
-  auto decode_node = createNHWCFeatureDecode(_loco_graph.get());
-  // Set Input
-  decode_node->input(pool_node);
-  // Not set Shape
-  // Add to map
-  _mir2loco_map.emplace(&op, decode_node);
-}
-
 void Transformer::visit(mir::ops::ReluOp &op)
 {
   auto relu_node = _loco_graph->nodes()->create<loco::ReLU>();
index cb6af05..223fdd3 100644 (file)
@@ -24,7 +24,6 @@
 #include "mir/ops/DepthwiseConv2DOp.h"
 #include "mir/ops/MaxPool2DOp.h"
 #include "mir/ops/MulOp.h"
-#include "mir/ops/PoolOp.h"
 #include "mir/ops/ReluOp.h"
 #include "mir/ops/ReshapeOp.h"
 #include "mir/ops/SoftmaxOp.h"