summaryrefslogtreecommitdiff
path: root/runtimes
diff options
context:
space:
mode:
Diffstat (limited to 'runtimes')
-rw-r--r--runtimes/neurun/frontend/tflite/loader.cc18
-rw-r--r--runtimes/neurun/frontend/tflite/loader.h1
2 files changed, 19 insertions, 0 deletions
diff --git a/runtimes/neurun/frontend/tflite/loader.cc b/runtimes/neurun/frontend/tflite/loader.cc
index cc1d5221b..844365bfd 100644
--- a/runtimes/neurun/frontend/tflite/loader.cc
+++ b/runtimes/neurun/frontend/tflite/loader.cc
@@ -212,6 +212,21 @@ void Loader::loadDepthwiseConv2D(const tflite::Operator *op)
_graph.addOperation(std::move(new_op));
}
+void Loader::loadTransposeConv(const tflite::Operator *op)
+{
+ model::OperandIndexSequence inputs;
+ model::OperandIndexSequence outputs;
+
+ loadOperationIO(op, inputs, outputs);
+
+ model::operation::TransposeConvNode::Param param;
+ const auto *options = op->builtin_options_as_TransposeConvOptions();
+ loadStridesAndPaddings(param, options);
+ std::unique_ptr<model::Operation> new_op(
+ new model::operation::TransposeConvNode(inputs, outputs, param));
+ _graph.addOperation(std::move(new_op));
+}
+
void Loader::loadAvgPool2D(const tflite::Operator *op)
{
model::OperandIndexSequence inputs;
@@ -535,6 +550,9 @@ void Loader::loadOperation(const tflite::Operator *op)
case BuiltinOperator_DEPTHWISE_CONV_2D:
loadDepthwiseConv2D(op);
return;
+ case BuiltinOperator_TRANSPOSE_CONV:
+ loadTransposeConv(op);
+ return;
case BuiltinOperator_RESHAPE:
loadReshape(op);
return;
diff --git a/runtimes/neurun/frontend/tflite/loader.h b/runtimes/neurun/frontend/tflite/loader.h
index 0ccd948e5..c398cbc00 100644
--- a/runtimes/neurun/frontend/tflite/loader.h
+++ b/runtimes/neurun/frontend/tflite/loader.h
@@ -76,6 +76,7 @@ private:
// Operations
void loadConv2D(const tflite::Operator *op);
void loadDepthwiseConv2D(const tflite::Operator *op);
+ void loadTransposeConv(const tflite::Operator *op);
void loadAvgPool2D(const tflite::Operator *op);
void loadReshape(const tflite::Operator *op);
void loadSoftmax(const tflite::Operator *op);