[coco] Extend OpManager for ReLU op (#1278)
author박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Mon, 3 Sep 2018 02:03:55 +0000 (11:03 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Mon, 3 Sep 2018 02:03:55 +0000 (11:03 +0900)
This commit implements create<ReLU> method, which allows us to create
ReLU instances via OpManager.

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 624a729..83b95fc 100644 (file)
@@ -3,6 +3,7 @@
 
 #include "coco/IR/Op.h"
 #include "coco/IR/Conv2D.h"
+#include "coco/IR/ReLU.h"
 #include "coco/IR/Instr.forward.h"
 
 #include "coco/IR/Object.forward.h"
index 7d5cc71..3786b64 100644 (file)
@@ -18,4 +18,6 @@ template <> Conv2D *OpManager::create<Conv2D>(void)
   return take(make_unique<Conv2D>(_op_link, _obj_link));
 }
 
+template <> ReLU *OpManager::create<ReLU>(void) { return take(make_unique<ReLU>(_op_link)); }
+
 } // namespace coco
index 8bc5876..ba3a973 100644 (file)
@@ -2,6 +2,19 @@
 
 #include <gtest/gtest.h>
 
+namespace
+{
+
+class OpManagerTest : public ::testing::Test
+{
+protected:
+  coco::PtrLink<coco::Op, coco::Instr> op_link;
+  coco::PtrLink<coco::Object, coco::ObjectInfo> obj_link;
+  coco::OpManager mgr{&op_link, &obj_link};
+};
+
+} // namespace
+
 TEST(IR_OP_MANAGER, create_Conv2D)
 {
   coco::PtrLink<coco::Op, coco::Instr> op_link;
@@ -12,3 +25,10 @@ TEST(IR_OP_MANAGER, create_Conv2D)
 
   ASSERT_NE(obj, nullptr);
 }
+
+TEST_F(OpManagerTest, ReLU)
+{
+  auto obj = mgr.create<coco::ReLU>();
+
+  ASSERT_NE(obj, nullptr);
+}