diff options
author | 박세희/On-Device Lab(SR)/Principal Engineer/삼성전자 <saehie.park@samsung.com> | 2020-03-31 13:58:19 +0900 |
---|---|---|
committer | GitHub Enterprise <noreply-CODE@samsung.com> | 2020-03-31 13:58:19 +0900 |
commit | cba8f6faa4d6879317a8e2ecb427e076e6e6ebcd (patch) | |
tree | 4029f37561a4c43d963afa5405ded1201789f086 | |
parent | c17b45d8593e19a9f33a3c27f474d103a69d8f20 (diff) | |
download | nnfw-cba8f6faa4d6879317a8e2ecb427e076e6e6ebcd.tar.gz nnfw-cba8f6faa4d6879317a8e2ecb427e076e6e6ebcd.tar.bz2 nnfw-cba8f6faa4d6879317a8e2ecb427e076e6e6ebcd.zip |
[luci] Export Softmax Op (#10782)
This will enable export of Softmax Op
Signed-off-by: SaeHie Park <saehie.park@samsung.com>
-rw-r--r-- | compiler/luci/export/src/CircleOperationExporter.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/compiler/luci/export/src/CircleOperationExporter.cpp b/compiler/luci/export/src/CircleOperationExporter.cpp index 48b176594..264ae949d 100644 --- a/compiler/luci/export/src/CircleOperationExporter.cpp +++ b/compiler/luci/export/src/CircleOperationExporter.cpp @@ -64,7 +64,7 @@ public: void visit(luci::CircleRelu6 *) final; // TODO CircleReshape void visit(luci::CircleRsqrt *) final; - // TODO CircleSoftmax + void visit(luci::CircleSoftmax *) final; void visit(luci::CircleSqrt *) final; void visit(luci::CircleSquaredDifference *) final; void visit(luci::CircleSub *) final; @@ -333,7 +333,18 @@ void OperationExporter::visit(luci::CircleRsqrt *node) gd._operators.push_back(op_offset); } -// TODO CircleSoftmax +void OperationExporter::visit(luci::CircleSoftmax *node) +{ + uint32_t op_idx = gd.registerBuiltinOpcode(circle::BuiltinOperator_SOFTMAX); + std::vector<int32_t> inputs_vec{get_tensor_index(node->logits())}; + 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 = CreateSoftmaxOptions(builder, node->beta()); + auto op_offset = CreateOperator(builder, op_idx, inputs, outputs, + circle::BuiltinOptions_SoftmaxOptions, options.Union()); + gd._operators.push_back(op_offset); +} void OperationExporter::visit(luci::CircleSqrt *node) { |