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
/**
* @brief DIV in TensorFlow Lite
*/
-class TFLDiv final : public FixedArityNode<2, TFLNodeImpl<TFLOpcode::DIV>>
+class TFLDiv final : public FixedArityNode<2, TFLNodeImpl<TFLOpcode::DIV>>,
+ public TFLNodeMixin<TFLNodeTrait::FusedActFunc>
{
public:
TFLDiv() = default;
/**
* @brief SUB in TensorFlow Lite
*/
-class TFLSub final : public FixedArityNode<2, TFLNodeImpl<TFLOpcode::SUB>>
+class TFLSub final : public FixedArityNode<2, TFLNodeImpl<TFLOpcode::SUB>>,
+ public TFLNodeMixin<TFLNodeTrait::FusedActFunc>
{
public:
TFLSub() = default;
std::vector<int32_t> outputs_vec{get_tensor_index(static_cast<loco::Node *>(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);
std::vector<int32_t> outputs_vec{get_tensor_index(static_cast<loco::Node *>(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);