summaryrefslogtreecommitdiff
path: root/runtimes/pure_arm_compute/src/model.cc
diff options
context:
space:
mode:
authorChunseok Lee <chunseok.lee@samsung.com>2019-01-08 17:36:34 +0900
committerChunseok Lee <chunseok.lee@samsung.com>2019-01-08 17:36:34 +0900
commitbd11b24234d7d43dfe05a81c520aa01ffad06e42 (patch)
tree57d0d4044977e4fa0e50cd9ba40b32006dff19eb /runtimes/pure_arm_compute/src/model.cc
parent91f4ba45449f700a047a4aeea00b1a7c84e94c75 (diff)
downloadnnfw-bd11b24234d7d43dfe05a81c520aa01ffad06e42.tar.gz
nnfw-bd11b24234d7d43dfe05a81c520aa01ffad06e42.tar.bz2
nnfw-bd11b24234d7d43dfe05a81c520aa01ffad06e42.zip
Imported Upstream version 0.3upstream/0.3
Diffstat (limited to 'runtimes/pure_arm_compute/src/model.cc')
-rw-r--r--runtimes/pure_arm_compute/src/model.cc223
1 files changed, 223 insertions, 0 deletions
diff --git a/runtimes/pure_arm_compute/src/model.cc b/runtimes/pure_arm_compute/src/model.cc
index 49ea59f17..2c4120d7a 100644
--- a/runtimes/pure_arm_compute/src/model.cc
+++ b/runtimes/pure_arm_compute/src/model.cc
@@ -602,6 +602,28 @@ int ANeuralNetworksModel_addOperation(ANeuralNetworksModel *model,
break;
}
+ case ANEURALNETWORKS_SPACE_TO_BATCH_ND:
+ {
+ using internal::tflite::op::SpaceToBatchND::Param;
+ using internal::tflite::op::SpaceToBatchND::Node;
+
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
+ case ANEURALNETWORKS_BATCH_TO_SPACE_ND:
+ {
+ using internal::tflite::op::BatchToSpaceNd::Param;
+ using internal::tflite::op::BatchToSpaceNd::Node;
+
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
case ANEURALNETWORKS_L2_POOL_2D:
{
// Input count is 7 for Implicit Padding
@@ -675,6 +697,29 @@ int ANeuralNetworksModel_addOperation(ANeuralNetworksModel *model,
break;
}
+ case ANEURALNETWORKS_LOCAL_RESPONSE_NORMALIZATION:
+ {
+
+ using internal::tflite::op::LocalResponseNormalization::Param;
+ using internal::tflite::op::LocalResponseNormalization::Node;
+
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
+ case ANEURALNETWORKS_DEPTH_TO_SPACE:
+ {
+ using internal::tflite::op::DepthToSpace::Param;
+ using internal::tflite::op::DepthToSpace::Node;
+
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
default:
throw std::runtime_error{"Not supported operation"};
};
@@ -706,6 +751,18 @@ int ANeuralNetworksModel_addOperationEx(ANeuralNetworksModel *model,
break;
}
+ case ANEURALNETWORKS_REDUCE_MIN_EX:
+ {
+ using internal::tflite::op::ReduceMin::Param;
+ using internal::tflite::op::ReduceMin::Node;
+
+ // Add 'operations'
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
case ANEURALNETWORKS_TENSORFLOW_MAX_EX:
{
using internal::tflite::op::ReduceMax::Param;
@@ -718,6 +775,53 @@ int ANeuralNetworksModel_addOperationEx(ANeuralNetworksModel *model,
break;
}
+ case ANEURALNETWORKS_PRELU_EX:
+ {
+ using internal::tflite::op::PReLU::Param;
+ using internal::tflite::op::PReLU::Node;
+
+ // Add 'operations'
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
+ case ANEURALNETWORKS_TRANSPOSE_CONV_EX:
+ {
+ using internal::tflite::op::TransposeConv::Param;
+ using internal::tflite::op::TransposeConv::Node;
+
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
+ case ANEURALNETWORKS_LOGICAL_AND_EX:
+ {
+ using internal::tflite::op::LogicalAnd::Param;
+ using internal::tflite::op::LogicalAnd::Node;
+
+ // Add 'operations'
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
+ case ANEURALNETWORKS_LOGICAL_OR_EX:
+ {
+ using internal::tflite::op::LogicalOr::Param;
+ using internal::tflite::op::LogicalOr::Node;
+
+ // Add 'operations'
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
case ANEURALNETWORKS_RSQRT_EX:
{
using internal::tflite::op::RSQRT::Param;
@@ -730,6 +834,30 @@ int ANeuralNetworksModel_addOperationEx(ANeuralNetworksModel *model,
break;
}
+ case ANEURALNETWORKS_SQRT_EX:
+ {
+ using internal::tflite::op::SQRT::Param;
+ using internal::tflite::op::SQRT::Node;
+
+ // Add 'operations'
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
+ case ANEURALNETWORKS_EQUAL_EX:
+ {
+ using internal::tflite::op::Equal::Param;
+ using internal::tflite::op::Equal::Node;
+
+ // Add 'operations'
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
case ANEURALNETWORKS_SQUARED_DIFFERENCE_EX:
{
using internal::tflite::op::SquaredDifference::Param;
@@ -778,6 +906,101 @@ int ANeuralNetworksModel_addOperationEx(ANeuralNetworksModel *model,
break;
}
+ case ANEURALNETWORKS_UNPACK_EX:
+ {
+ using internal::tflite::op::Unpack::Param;
+ using internal::tflite::op::Unpack::Node;
+
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
+ case ANEURALNETWORKS_NEG_EX:
+ {
+ using internal::tflite::op::Neg::Param;
+ using internal::tflite::op::Neg::Node;
+
+ // Add 'operations'
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
+ case ANEURALNETWORKS_EXP_EX:
+ {
+ using internal::tflite::op::Exp::Param;
+ using internal::tflite::op::Exp::Node;
+
+ // Add 'operations'
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
+ case ANEURALNETWORKS_REDUCE_SUM_EX:
+ {
+ using internal::tflite::op::ReduceSum::Param;
+ using internal::tflite::op::ReduceSum::Node;
+
+ // Add 'operations'
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
+ case ANEURALNETWORKS_PACK_EX:
+ {
+ using internal::tflite::op::Pack::Param;
+ using internal::tflite::op::Pack::Node;
+
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
+ case ANEURALNETWORKS_ABS_EX:
+ {
+ using internal::tflite::op::Abs::Param;
+ using internal::tflite::op::Abs::Node;
+
+ // Add 'operations'
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
+ case ANEURALNETWORKS_ARGMAX_EX:
+ {
+ using internal::tflite::op::ArgMax::Param;
+ using internal::tflite::op::ArgMax::Node;
+
+ // Add 'operations'
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
+ case ANEURALNETWORKS_NOT_EQUAL_EX:
+ {
+ using internal::tflite::op::NotEqual::Param;
+ using internal::tflite::op::NotEqual::Node;
+
+ // Add 'operations'
+ auto &operations = model->deref().operations();
+
+ operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
+
+ break;
+ }
+
default:
throw std::runtime_error{"Not supported operation"};
}