From d962de3178facea10f6dddd4b5b679bbef4518a2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=91=D0=B0=D1=80?= =?utf8?q?=D0=B0=D0=BD=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2/AI=20Tools=20Lab=20/S?= =?utf8?q?RR/Engineer/=EC=82=BC=EC=84=B1=EC=A0=84=EC=9E=90?= Date: Mon, 2 Sep 2019 13:28:26 +0300 Subject: [PATCH] [mir2loco] Remove support for PoolOp (#7071) This operation was replaced by `AvgPool2DOp` and `MaxPool2DOp`. Signed-off-by: Sergei Barannikov --- compiler/mir2loco/include/mir2loco.h | 1 - compiler/mir2loco/src/mir2loco.cpp | 55 --------------------------------- compiler/mir2loco/src/mir2loco.test.cpp | 1 - 3 files changed, 57 deletions(-) diff --git a/compiler/mir2loco/include/mir2loco.h b/compiler/mir2loco/include/mir2loco.h index 56099f5..0bca70d 100644 --- a/compiler/mir2loco/include/mir2loco.h +++ b/compiler/mir2loco/include/mir2loco.h @@ -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; diff --git a/compiler/mir2loco/src/mir2loco.cpp b/compiler/mir2loco/src/mir2loco.cpp index f8bc0cc..06586a0 100644 --- a/compiler/mir2loco/src/mir2loco.cpp +++ b/compiler/mir2loco/src/mir2loco.cpp @@ -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(); - // 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(); - // 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(); diff --git a/compiler/mir2loco/src/mir2loco.test.cpp b/compiler/mir2loco/src/mir2loco.test.cpp index cb6af05..223fdd3 100644 --- a/compiler/mir2loco/src/mir2loco.test.cpp +++ b/compiler/mir2loco/src/mir2loco.test.cpp @@ -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" -- 2.7.4