From 7c74128ed6f98bd4f3a5f1c94cbe144224d495d9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EC=9C=A4=ED=98=84=EC=8B=9D/On-Device=20Lab=28SR=29/Princip?= =?utf8?q?al=20Engineer/=EC=82=BC=EC=84=B1=EC=A0=84=EC=9E=90?= Date: Mon, 7 Oct 2019 08:49:57 +0900 Subject: [PATCH] [exo-tflite] Code to export TFLConv2D (#7926) Now OperationExporter has code to export TFLConv2D. Signed-off-by: Hyun Sik Yoon --- compiler/exo-tflite/src/OperationExporter.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/compiler/exo-tflite/src/OperationExporter.cpp b/compiler/exo-tflite/src/OperationExporter.cpp index 2217ef7..2511b2b 100644 --- a/compiler/exo-tflite/src/OperationExporter.cpp +++ b/compiler/exo-tflite/src/OperationExporter.cpp @@ -54,7 +54,7 @@ public: void visit(locoex::TFLAveragePool2D *) final; // TODO TFLConcatenation void visit(locoex::TFLConst *) final{/* skip, everything is done in exportOpDefinedTensors */}; - // TODO TFLConv2D + void visit(locoex::TFLConv2D *) final; // TODO TFLDepthwiseConv2D void visit(locoex::TFLDiv *) final; void visit(locoex::TFLMaxPool2D *) final; @@ -134,7 +134,24 @@ void OperationExporter::visit(locoex::TFLAveragePool2D *node) // TODO TFLConcatenation -// TODO TFLConv2D +void OperationExporter::visit(locoex::TFLConv2D *node) +{ + uint32_t op_idx = gd.registerBuiltinOpcode(tflite::BuiltinOperator_CONV_2D); + + // Make input, output and options for operator + std::vector inputs_vec{get_tensor_index(node->input()), get_tensor_index(node->filter()), + get_tensor_index(node->bias())}; + std::vector outputs_vec{get_tensor_index(static_cast(node))}; + auto inputs = builder.CreateVector(inputs_vec); + auto outputs = builder.CreateVector(outputs_vec); + tflite::Padding padding = getOpPadding(node->padding()); + auto options = CreateConv2DOptions(builder, padding, node->stride()->w(), node->stride()->h()); + + // Make CONV_2D operator + auto op_offset = CreateOperator(builder, op_idx, inputs, outputs, + tflite::BuiltinOptions_Conv2DOptions, options.Union()); + gd._operators.push_back(op_offset); +} // TODO TFLDepthwiseConv2D -- 2.7.4