void visit(locoex::TFLDepthwiseConv2D *) final;
void visit(locoex::TFLDiv *) final;
void visit(locoex::TFLMaxPool2D *) final;
+ void visit(locoex::TFLMean *) final;
void visit(locoex::TFLMul *) final;
void visit(locoex::TFLRelu *) final;
void visit(locoex::TFLRelu6 *) final;
export_pool_2d<locoex::TFLMaxPool2D>(node, circle::BuiltinOperator_MAX_POOL_2D);
}
+void OperationExporter::visit(locoex::TFLMean *node)
+{
+ uint32_t op_idx = gd.registerBuiltinOpcode(circle::BuiltinOperator_MEAN);
+ std::vector<int32_t> inputs_vec{get_tensor_index(node->input()),
+ get_tensor_index(node->reduction_indices())};
+ 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 = CreateReducerOptions(builder, node->keep_dims());
+ auto op_offset = CreateOperator(builder, op_idx, inputs, outputs,
+ circle::BuiltinOptions_ReducerOptions, options.Union());
+ gd._operators.push_back(op_offset);
+}
+
void OperationExporter::visit(locoex::TFLMul *node)
{
uint32_t op_idx = gd.registerBuiltinOpcode(circle::BuiltinOperator_MUL);
void visit(locoex::TFLDepthwiseConv2D *) final;
void visit(locoex::TFLDiv *) final;
void visit(locoex::TFLMaxPool2D *) final;
+ void visit(locoex::TFLMean *) final;
void visit(locoex::TFLMul *) final;
void visit(locoex::TFLRelu *) final;
void visit(locoex::TFLRelu6 *) final;
export_pool_2d<locoex::TFLMaxPool2D>(node, tflite::BuiltinOperator_MAX_POOL_2D);
}
+void OperationExporter::visit(locoex::TFLMean *node)
+{
+ uint32_t op_idx = gd.registerBuiltinOpcode(tflite::BuiltinOperator_MEAN);
+ std::vector<int32_t> inputs_vec{get_tensor_index(node->input()),
+ get_tensor_index(node->reduction_indices())};
+ 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 = CreateReducerOptions(builder, node->keep_dims());
+ auto op_offset = CreateOperator(builder, op_idx, inputs, outputs,
+ tflite::BuiltinOptions_ReducerOptions, options.Union());
+ gd._operators.push_back(op_offset);
+}
+
void OperationExporter::visit(locoex::TFLMul *node)
{
uint32_t op_idx = gd.registerBuiltinOpcode(tflite::BuiltinOperator_MUL);