[tflite_loader] implement Relu6 operator (#7068)
author이상규/On-Device Lab(SR)/Principal Engineer/삼성전자 <sg5.lee@samsung.com>
Mon, 2 Sep 2019 04:08:03 +0000 (13:08 +0900)
committer이춘석/On-Device Lab(SR)/Staff Engineer/삼성전자 <chunseok.lee@samsung.com>
Mon, 2 Sep 2019 04:08:03 +0000 (13:08 +0900)
It adds `Relu6` for mobilenet v3.

Signed-off-by: Sanggyu Lee <sg5.lee@samsung.com>
CONTRIBTUTORS
runtimes/neurun/frontend/tflite/loader.cc
runtimes/neurun/frontend/tflite/loader.h

index b052152..cf17b42 100644 (file)
Binary files a/CONTRIBTUTORS and b/CONTRIBTUTORS differ
index 5121cea..5d6580e 100644 (file)
@@ -329,6 +329,17 @@ void Loader::loadRelu(const tflite::Operator *op)
   _graph.addOperation(std::move(new_op));
 }
 
+void Loader::loadRelu6(const tflite::Operator *op)
+{
+  model::OperandIndexSequence inputs;
+  model::OperandIndexSequence outputs;
+
+  loadOperationIO(op, inputs, outputs);
+
+  std::unique_ptr<model::Operation> new_op(new model::operation::ReLU6Node(inputs, outputs));
+  _graph.addOperation(std::move(new_op));
+}
+
 void Loader::loadTranspose(const tflite::Operator *op)
 {
   model::OperandIndexSequence inputs;
@@ -385,6 +396,9 @@ void Loader::loadOperation(const tflite::Operator *op)
     case BuiltinOperator_RELU:
       loadRelu(op);
       return;
+    case BuiltinOperator_RELU6:
+      loadRelu6(op);
+      return;
     case BuiltinOperator_TRANSPOSE:
       loadTranspose(op);
       return;
index 068a2b7..0c224c2 100644 (file)
@@ -84,6 +84,7 @@ private:
   void loadFC(const tflite::Operator *op);
   void loadAdd(const tflite::Operator *op);
   void loadRelu(const tflite::Operator *op);
+  void loadRelu6(const tflite::Operator *op);
   void loadTranspose(const tflite::Operator *op);
 
 private: