[exo] Instance Norm summary (#9009)
author박천교/On-Device Lab(SR)/Engineer/삼성전자 <ch.bahk@samsung.com>
Tue, 19 Nov 2019 01:51:06 +0000 (10:51 +0900)
committer박종현/On-Device Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Tue, 19 Nov 2019 01:51:06 +0000 (10:51 +0900)
This commit implements summary for Circle Instance Norm IR.

Signed-off-by: Cheongyo Bahk <ch.bahk@samsung.com>
compiler/exo/src/ExoFormattedGraph.cpp

index dd79005..bec1771 100644 (file)
@@ -452,7 +452,7 @@ public:
 
 private:
 #define IMPLEMENT(CLASS) bool summary(const CLASS *, locop::NodeSummary &) const final;
-// TODO IMPLEMENT(locoex::CircleInstanceNorm)
+  IMPLEMENT(locoex::CircleInstanceNorm)
 #undef IMPLEMENT
 };
 
@@ -473,7 +473,22 @@ bool CircleNodeSummaryBuilderBase::build(const loco::Node *node, locop::NodeSumm
   return false;
 }
 
-// TODO summary impl for CircleInstanceNorm
+bool CircleNodeSummaryBuilder::summary(const locoex::CircleInstanceNorm *node,
+                                       locop::NodeSummary &s) const
+{
+  auto fused = node->fusedActivationFunction();
+  assert(fused != locoex::FusedActFunc::UNDEFINED);
+
+  s.args().append("input", tbl()->lookup(node->input()));
+  s.args().append("gamma", tbl()->lookup(node->gamma()));
+  s.args().append("beta", tbl()->lookup(node->beta()));
+  s.args().append("epsilon", pepper::str(node->epsilon()));
+  s.args().append("fused_activation_function", to_str(fused));
+
+  s.state(locop::NodeSummary::State::Complete);
+
+  return true;
+}
 
 } // namespace