Update nnapi delegate for LRN (#3270)
authorShubham Gupta/System SW /SRI-Bangalore/Engineer/삼성전자 <shub98.gupta@samsung.com>
Mon, 29 Oct 2018 11:26:54 +0000 (16:56 +0530)
committer오형석/동작제어Lab(SR)/Staff Engineer/삼성전자 <hseok82.oh@samsung.com>
Mon, 29 Oct 2018 11:26:54 +0000 (20:26 +0900)
This patch will add nnapi delegation changes for LocalResponseNormalization.

Signed-off-by: shubham <shub98.gupta@samsung.com>
libs/support/tflite/src/nnapi_delegate.cpp
libs/support/tflite/src/nnapi_delegate_ex_AddOpsAndParams_lambda.inc

index 59f76bf..987cd77 100644 (file)
@@ -493,6 +493,10 @@ void AddOpsAndParams(tflite::Interpreter* interpreter,
         nn_op_type = ANEURALNETWORKS_L2_NORMALIZATION;
         check_l2normalization_params(node.builtin_data);
         break;
+      case tflite::BuiltinOperator_LOCAL_RESPONSE_NORMALIZATION:
+        nn_op_type = ANEURALNETWORKS_LOCAL_RESPONSE_NORMALIZATION;
+        add_lrn_params(node.builtin_data);
+        break;
       case tflite::BuiltinOperator_DIV:
         nnapi_version = 11;  // require NNAPI 1.1
         nn_op_type = ANEURALNETWORKS_DIV;
@@ -578,7 +582,6 @@ void AddOpsAndParams(tflite::Interpreter* interpreter,
       case tflite::BuiltinOperator_EMBEDDING_LOOKUP_SPARSE:
       case tflite::BuiltinOperator_BIDIRECTIONAL_SEQUENCE_LSTM:
       case tflite::BuiltinOperator_UNIDIRECTIONAL_SEQUENCE_LSTM:
-      case tflite::BuiltinOperator_LOCAL_RESPONSE_NORMALIZATION:
       case tflite::BuiltinOperator_PADV2:
       case tflite::BuiltinOperator_CALL:
       case tflite::BuiltinOperator_SKIP_GRAM:
index 6d9676c..b6b0bf6 100644 (file)
       }
     };
 
+    auto add_lrn_params = [&add_scalar_int32,
+                            &add_scalar_float32](void* data) {
+      auto builtin = reinterpret_cast<TfLiteLocalResponseNormParams*>(data);
+      add_scalar_int32(builtin->radius);
+      add_scalar_float32(builtin->bias);
+      add_scalar_float32(builtin->alpha);
+      add_scalar_float32(builtin->beta);
+    };
+
     auto add_strided_slice_params = [&add_scalar_int32](void* data) {
       auto builtin = reinterpret_cast<TfLiteStridedSliceParams*>(data);
       add_scalar_int32(builtin->begin_mask);