From 44acc08518ea56e6ee6e369e4379ae6abe68480e Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EB=82=A8=EA=B6=81=EC=84=9D/On-Device=20Lab=28SR=29/Enginee?= =?utf8?q?r/=EC=82=BC=EC=84=B1=EC=A0=84=EC=9E=90?= Date: Wed, 23 Oct 2019 12:11:03 +0900 Subject: [PATCH] [exo] Set FusedActivation for sub and div (#8405) This commit will set fusedActivationFunction for `sub` and `div` Signed-off-by: Seok NamKoong --- compiler/exo/src/Conversion/EltwiseBinaryConverter.h | 8 ++++---- compiler/exo/src/Dialect/IR/TFLNodes.h | 6 ++++-- compiler/exo/src/TFLite/TFLOperationExporter.cpp | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/compiler/exo/src/Conversion/EltwiseBinaryConverter.h b/compiler/exo/src/Conversion/EltwiseBinaryConverter.h index 71447de..3dc5afa 100644 --- a/compiler/exo/src/Conversion/EltwiseBinaryConverter.h +++ b/compiler/exo/src/Conversion/EltwiseBinaryConverter.h @@ -41,14 +41,14 @@ template <> inline void init_fused_act_func(locoex::TFLMul *node) node->fusedActivationFunction(locoex::FusedActFunc::NONE); } -template <> inline void init_fused_act_func(locoex::TFLSub *) +template <> inline void init_fused_act_func(locoex::TFLSub *node) { - /* TFLSub does not have fused activation function. Thus, nothing to do */ + node->fusedActivationFunction(locoex::FusedActFunc::NONE); } -template <> inline void init_fused_act_func(locoex::TFLDiv *) +template <> inline void init_fused_act_func(locoex::TFLDiv *node) { - /* TFLDic does not have fused activation function. Thus, nothing to do */ + node->fusedActivationFunction(locoex::FusedActFunc::NONE); } } // namespace diff --git a/compiler/exo/src/Dialect/IR/TFLNodes.h b/compiler/exo/src/Dialect/IR/TFLNodes.h index d3be06c..7403d4a 100644 --- a/compiler/exo/src/Dialect/IR/TFLNodes.h +++ b/compiler/exo/src/Dialect/IR/TFLNodes.h @@ -299,7 +299,8 @@ private: /** * @brief DIV in TensorFlow Lite */ -class TFLDiv final : public FixedArityNode<2, TFLNodeImpl> +class TFLDiv final : public FixedArityNode<2, TFLNodeImpl>, + public TFLNodeMixin { public: TFLDiv() = default; @@ -383,7 +384,8 @@ public: /** * @brief SUB in TensorFlow Lite */ -class TFLSub final : public FixedArityNode<2, TFLNodeImpl> +class TFLSub final : public FixedArityNode<2, TFLNodeImpl>, + public TFLNodeMixin { public: TFLSub() = default; diff --git a/compiler/exo/src/TFLite/TFLOperationExporter.cpp b/compiler/exo/src/TFLite/TFLOperationExporter.cpp index 8f1299c..8c96d13 100644 --- a/compiler/exo/src/TFLite/TFLOperationExporter.cpp +++ b/compiler/exo/src/TFLite/TFLOperationExporter.cpp @@ -201,7 +201,7 @@ void OperationExporter::visit(locoex::TFLDiv *node) std::vector outputs_vec{get_tensor_index(static_cast(node))}; auto inputs = builder.CreateVector(inputs_vec); auto outputs = builder.CreateVector(outputs_vec); - auto options = CreateDivOptions(builder); // dummy option + auto options = CreateDivOptions(builder, to_tflite_actfunc(node->fusedActivationFunction())); auto op_offset = CreateOperator(builder, op_idx, inputs, outputs, tflite::BuiltinOptions_DivOptions, options.Union()); gd._operators.push_back(op_offset); @@ -260,7 +260,7 @@ void OperationExporter::visit(locoex::TFLSub *node) std::vector outputs_vec{get_tensor_index(static_cast(node))}; auto inputs = builder.CreateVector(inputs_vec); auto outputs = builder.CreateVector(outputs_vec); - auto options = CreateSubOptions(builder); // dummy option + auto options = CreateSubOptions(builder, to_tflite_actfunc(node->fusedActivationFunction())); auto op_offset = CreateOperator(builder, op_idx, inputs, outputs, tflite::BuiltinOptions_SubOptions, options.Union()); gd._operators.push_back(op_offset); -- 2.7.4