From: Prasanna R/SNAP /SRI-Bangalore/Engineer/삼성전자 Date: Tue, 4 Dec 2018 07:58:30 +0000 (+0530) Subject: Add nnapi_delegation for PACK n UNPACK (#3787) X-Git-Tag: 0.3~225 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7cd7e9953132ffc80db51caab6060d184887e4f7;p=platform%2Fcore%2Fml%2Fnnfw.git Add nnapi_delegation for PACK n UNPACK (#3787) This patch adds nnapi_delegation for pack and unpack op. Signed-off-by: prasannar --- diff --git a/libs/support/tflite/src/nnapi_delegate.cpp b/libs/support/tflite/src/nnapi_delegate.cpp index 88ae31a..f706770 100644 --- a/libs/support/tflite/src/nnapi_delegate.cpp +++ b/libs/support/tflite/src/nnapi_delegate.cpp @@ -760,6 +760,22 @@ TfLiteStatus AddOpsAndParams( reinterpret_cast(node.outputs->data))); continue; #ifndef OBS_BUILD + case tflite::BuiltinOperator_PACK: + add_pack_ex_params(node.builtin_data); + CHECK_NN(ANeuralNetworksModel_addOperationEx( + nn_model, ANEURALNETWORKS_PACK_EX, + static_cast(augmented_inputs.size()), + augmented_inputs.data(), static_cast(node.outputs->size), + reinterpret_cast(node.outputs->data))); + continue; + case tflite::BuiltinOperator_UNPACK: + add_unpack_ex_params(node.builtin_data); + CHECK_NN(ANeuralNetworksModel_addOperationEx( + nn_model, ANEURALNETWORKS_UNPACK_EX, + static_cast(augmented_inputs.size()), + augmented_inputs.data(), static_cast(node.outputs->size), + reinterpret_cast(node.outputs->data))); + continue; case tflite::BuiltinOperator_SQRT: CHECK_NN(ANeuralNetworksModel_addOperationEx( nn_model, ANEURALNETWORKS_SQRT_EX, @@ -870,12 +886,12 @@ TfLiteStatus AddOpsAndParams( case tflite::BuiltinOperator_SHAPE: case tflite::BuiltinOperator_POW: case tflite::BuiltinOperator_FAKE_QUANT: - case tflite::BuiltinOperator_PACK: + //case tflite::BuiltinOperator_PACK: case tflite::BuiltinOperator_LOGICAL_OR: case tflite::BuiltinOperator_ONE_HOT: case tflite::BuiltinOperator_LOGICAL_AND: case tflite::BuiltinOperator_LOGICAL_NOT: - case tflite::BuiltinOperator_UNPACK: + //case tflite::BuiltinOperator_UNPACK: case tflite::BuiltinOperator_FLOOR_DIV: case tflite::BuiltinOperator_REDUCE_ANY: case tflite::BuiltinOperator_SQUARE: diff --git a/libs/support/tflite/src/nnapi_delegate_ex_AddOpsAndParams_lambda.inc b/libs/support/tflite/src/nnapi_delegate_ex_AddOpsAndParams_lambda.inc index 5cba4ee..a91e4de 100644 --- a/libs/support/tflite/src/nnapi_delegate_ex_AddOpsAndParams_lambda.inc +++ b/libs/support/tflite/src/nnapi_delegate_ex_AddOpsAndParams_lambda.inc @@ -67,6 +67,20 @@ } }; +#ifndef OBS_BUILD + auto add_pack_ex_params = [&add_scalar_int32](void* data) { + auto builtin = reinterpret_cast(data); + add_scalar_int32(builtin->values_count); + add_scalar_int32(builtin->axis); + }; + + auto add_unpack_ex_params = [&add_scalar_int32](void* data) { + auto builtin = reinterpret_cast(data); + add_scalar_int32(builtin->num); + add_scalar_int32(builtin->axis); + }; +#endif + auto check_batch_to_space_params = [interpreter, &node, &augmented_inputs]() { //If there are 3 inputs, check if crops is having default values {0, 0, 0, 0}