_graph.addOperation(std::move(new_op));
}
-void Loader::loadMul(const tflite::Operator *op)
+void Loader::loadSub(const tflite::Operator *op)
{
model::OperandIndexSequence inputs;
model::OperandIndexSequence outputs;
loadOperationIO(op, inputs, outputs);
- model::operation::MulNode::Param param;
- const auto *options = op->builtin_options_as_MulOptions();
+ model::operation::SubNode::Param param;
+ const auto *options = op->builtin_options_as_SubOptions();
- param.activation = convertActivation(options->fused_activation_function());
+ param.activation = neurun::model::Activation(options->fused_activation_function());
- std::unique_ptr<model::Operation> new_op(new model::operation::MulNode(inputs, outputs, param));
+ std::unique_ptr<model::Operation> new_op(new model::operation::SubNode(inputs, outputs, param));
_graph.addOperation(std::move(new_op));
}
-void Loader::loadSub(const tflite::Operator *op)
+void Loader::loadMul(const tflite::Operator *op)
{
model::OperandIndexSequence inputs;
model::OperandIndexSequence outputs;
_graph.addOperation(std::move(new_op));
}
+void Loader::loadDiv(const tflite::Operator *op)
+{
+ model::OperandIndexSequence inputs;
+ model::OperandIndexSequence outputs;
+
+ loadOperationIO(op, inputs, outputs);
+
+ model::operation::DivNode::Param param;
+ const auto *options = op->builtin_options_as_DivOptions();
+
+ param.activation = convertActivation(options->fused_activation_function());
+
+ std::unique_ptr<model::Operation> new_op(new model::operation::DivNode(inputs, outputs, param));
+ _graph.addOperation(std::move(new_op));
+}
+
void Loader::loadRelu(const tflite::Operator *op)
{
model::OperandIndexSequence inputs;
_graph.addOperation(std::move(new_op));
}
+void Loader::loadRsqrt(const tflite::Operator *op)
+{
+ model::OperandIndexSequence inputs;
+ model::OperandIndexSequence outputs;
+
+ loadOperationIO(op, inputs, outputs);
+
+ std::unique_ptr<model::Operation> new_op(new model::operation::RSQRTNode(inputs, outputs));
+ _graph.addOperation(std::move(new_op));
+}
+
+void Loader::loadSqrt(const tflite::Operator *op)
+{
+ model::OperandIndexSequence inputs;
+ model::OperandIndexSequence outputs;
+
+ loadOperationIO(op, inputs, outputs);
+
+ std::unique_ptr<model::Operation> new_op(new model::operation::SQRTNode(inputs, outputs));
+ _graph.addOperation(std::move(new_op));
+}
+
void Loader::loadSquaredDifference(const tflite::Operator *op)
{
model::OperandIndexSequence inputs;
_graph.addOperation(std::move(new_op));
}
-void Loader::loadRsqrt(const tflite::Operator *op)
-{
- model::OperandIndexSequence inputs;
- model::OperandIndexSequence outputs;
-
- loadOperationIO(op, inputs, outputs);
-
- std::unique_ptr<model::Operation> new_op(new model::operation::RSQRTNode(inputs, outputs));
- _graph.addOperation(std::move(new_op));
-}
-
void Loader::loadOperation(const tflite::Operator *op)
{
switch (_op_code_to_builtin_op[op->opcode_index()])
case BuiltinOperator_ADD:
loadAdd(op);
return;
+ case BuiltinOperator_SUB:
+ loadSub(op);
+ return;
case BuiltinOperator_MUL:
loadMul(op);
return;
- case BuiltinOperator_SUB:
- loadSub(op);
+ case BuiltinOperator_DIV:
+ loadDiv(op);
return;
case BuiltinOperator_RELU:
loadRelu(op);
case BuiltinOperator_RSQRT:
loadRsqrt(op);
return;
+ case BuiltinOperator_SQRT:
+ loadSqrt(op);
+ return;
case BuiltinOperator_SQUARED_DIFFERENCE:
loadSquaredDifference(op);
return;