From: 남궁석/On-Device Lab(SR)/Engineer/삼성전자 Date: Wed, 23 Oct 2019 03:11:03 +0000 (+0900) Subject: [exo] Set FusedActivation for sub and div (#8405) X-Git-Tag: submit/tizen/20191205.083104~634 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=44acc08518ea56e6ee6e369e4379ae6abe68480e;p=platform%2Fcore%2Fml%2Fnnfw.git [exo] Set FusedActivation for sub and div (#8405) This commit will set fusedActivationFunction for `sub` and `div` Signed-off-by: Seok NamKoong --- 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);