[tfltool] OP selection: Add support for L2Norm and Split (#3109)
authorPRAVEEN DORESWAMY NAIDU/System SW /SRI-Bangalore/Staff Engineer/삼성전자 <praveen.dn@samsung.com>
Tue, 16 Oct 2018 01:42:36 +0000 (07:12 +0530)
committer오형석/동작제어Lab(SR)/Staff Engineer/삼성전자 <hseok82.oh@samsung.com>
Tue, 16 Oct 2018 01:42:36 +0000 (10:42 +0900)
This patch will add support for L2Norm and Split operators
in tfltool select_operator.
Signed-off-by: Praveen D N <praveen.dn@samsung.com>
tools/tflitefile_tool/select_operator.py

index 86e600a..1f0b299 100755 (executable)
@@ -341,7 +341,18 @@ def GenerateBuiltinOption(new_builder, selected_builtin_option, builtin_option_t
             new_builder, add_option.FusedActivationFunction())
         return tflite.AddOptions.AddOptionsEnd(new_builder)
 
-    # L2NormOptions: not supported
+    # L2NormOptions
+    import tflite.L2NormOptions
+    if builtin_option_type == tflite.BuiltinOptions.BuiltinOptions().L2NormOptions:
+
+        l2norm_option = tflite.L2NormOptions.L2NormOptions()
+        l2norm_option.Init(selected_builtin_option.Bytes, selected_builtin_option.Pos)
+
+        tflite.L2NormOptions.L2NormOptionsStart(new_builder)
+        tflite.L2NormOptions.L2NormOptionsAddFusedActivationFunction(
+            new_builder, L2NormOptions.FusedActivationFunction())
+        return tflite.L2NormOptions.L2NormOptionsEnd(new_builder)
+
     # LocalResponseNormalizationOptions: not supported
     # LSTMOptions: not supported
 
@@ -506,7 +517,18 @@ def GenerateBuiltinOption(new_builder, selected_builtin_option, builtin_option_t
         tflite.TopKV2Options.TopKV2OptionsStart(new_builder)
         return tflite.TopKV2Options.TopKV2OptionsEnd(new_builder)
 
-    # SplitOptions: not supported
+    # SplitOptions
+    import tflite.SplitOptions
+    if builtin_option_type == tflite.BuiltinOptions.BuiltinOptions().SplitOptions:
+
+        split_option = tflite.SplitOptions.SplitOptions()
+        split_option.Init(selected_builtin_option.Bytes, selected_builtin_option.Pos)
+
+        tflite.SplitOptions.SplitOptionsStart(new_builder)
+        tflite.SplitOptions.SplitOptionsAddNumSplits(new_builder,
+                                                     SplitOptions.NumSplits())
+        return tflite.SplitOptions.SplitOptionsEnd(new_builder)
+
     # LogSoftmaxOptions: not supported
 
     # CastOptions: not supported