[coco] Construct AvgPool2D via OpManager (#1336)
author박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Wed, 5 Sep 2018 01:05:50 +0000 (10:05 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Wed, 5 Sep 2018 01:05:50 +0000 (10:05 +0900)
This commit implements OpManager::create<AvgPool2D> method.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
contrib/coco/core/include/coco/IR/OpManager.h
contrib/coco/core/src/IR/OpManager.cpp
contrib/coco/core/src/IR/OpManager.test.cpp

index e442b32..376a202 100644 (file)
@@ -4,6 +4,7 @@
 #include "coco/IR/Op.h"
 #include "coco/IR/Conv2D.h"
 #include "coco/IR/MaxPool2D.h"
+#include "coco/IR/AvgPool2D.h"
 #include "coco/IR/ReLU.h"
 #include "coco/IR/Instr.forward.h"
 
index 77c8543..8d09206 100644 (file)
@@ -23,6 +23,11 @@ template <> MaxPool2D *OpManager::create<MaxPool2D>(void)
   return take(make_unique<MaxPool2D>(_op_link));
 }
 
+template <> AvgPool2D *OpManager::create<AvgPool2D>(void)
+{
+  return take(make_unique<AvgPool2D>(_op_link));
+}
+
 template <> ReLU *OpManager::create<ReLU>(void) { return take(make_unique<ReLU>(_op_link)); }
 
 } // namespace coco
index ba3a973..9f02f0e 100644 (file)
@@ -26,6 +26,17 @@ TEST(IR_OP_MANAGER, create_Conv2D)
   ASSERT_NE(obj, nullptr);
 }
 
+TEST(IR_OP_MANAGER, create_AvgPool2D)
+{
+  coco::PtrLink<coco::Op, coco::Instr> op_link;
+  coco::PtrLink<coco::Object, coco::ObjectInfo> obj_link;
+  coco::OpManager mgr{&op_link, &obj_link};
+
+  auto obj = mgr.create<coco::AvgPool2D>();
+
+  ASSERT_NE(obj, nullptr);
+}
+
 TEST_F(OpManagerTest, ReLU)
 {
   auto obj = mgr.create<coco::ReLU>();