[enco] Show Conv2D op details (#2281)
author박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Wed, 14 Nov 2018 23:51:13 +0000 (08:51 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Wed, 14 Nov 2018 23:51:13 +0000 (08:51 +0900)
With this commit, enco_dump_all_ops and enco_dump_op methods show the
additional information if a given op is a Conv2D op.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
contrib/enco/core/src/Support/Debugging.cpp

index 37f4f70..d457247 100644 (file)
@@ -104,6 +104,53 @@ std::string op_kind(const coco::Op *op)
   return op->accept(v);
 }
 
+pp::LinearDocument describe(const coco::Padding2D *pad)
+{
+  pp::LinearDocument doc;
+
+  doc.append("top: ", pad->top());
+  doc.append("bottom: ", pad->bottom());
+  doc.append("left: ", pad->left());
+  doc.append("right: ", pad->right());
+
+  return doc;
+}
+
+pp::LinearDocument describe(const coco::Stride2D *stride)
+{
+  pp::LinearDocument doc;
+
+  doc.append("vertical: ", stride->vertical());
+  doc.append("horizontal ", stride->horizontal());
+
+  return doc;
+}
+
+pp::LinearDocument describe(const coco::Conv2D *conv)
+{
+  pp::LinearDocument doc;
+
+  doc.append("arg: ", conv->arg());
+  doc.append("ker: ", conv->ker());
+  doc.append("group: ", conv->group());
+
+  if (auto pad = conv->pad())
+  {
+    auto set = [pad](pp::LinearDocument &doc) { doc.append(describe(pad)); };
+    auto desc = section("pad").build(set);
+    doc.append(desc);
+  }
+
+  if (auto stride = conv->stride())
+  {
+    auto set = [stride](pp::LinearDocument &doc) { doc.append(describe(stride)); };
+    auto desc = section("stride").build(set);
+    doc.append(desc);
+  }
+
+  return doc;
+}
+
 pp::LinearDocument describe(const coco::Op *op)
 {
   pp::LinearDocument doc;
@@ -113,6 +160,13 @@ pp::LinearDocument describe(const coco::Op *op)
   doc.append("parent(instr): ", op->parent());
   doc.append("up(op): ", op->up());
 
+  if (auto conv = op->asConv2D())
+  {
+    auto set = [conv](pp::LinearDocument &doc) { doc.append(describe(conv)); };
+    auto desc = section("conv2d").build(set);
+    doc.append(desc);
+  }
+
   return doc;
 }