From 4461385ba28e942ef1868c3b2c9f7aa29a7428e0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EC=98=A4=ED=98=95=EC=84=9D/On-Device=20Lab=28SR=29/Staff?= =?utf8?q?=20Engineer/=EC=82=BC=EC=84=B1=EC=A0=84=EC=9E=90?= Date: Wed, 17 Jul 2019 10:07:07 +0900 Subject: [PATCH] [model parser] Fix operation.py (#5626) Change to instance method in _OperationComputeMethod class Not working now because static method don't have "__name__" field Change operation comment Signed-off-by: Hyeongseok Oh --- tools/tflitefile_tool/operation.py | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/tools/tflitefile_tool/operation.py b/tools/tflitefile_tool/operation.py index 7d04a01..3b88699 100755 --- a/tools/tflitefile_tool/operation.py +++ b/tools/tflitefile_tool/operation.py @@ -55,8 +55,7 @@ class _OperationComputeMethod(object): Anyway, we can calculate total operations on this way. This can apply to the way of pooling. ''' - @staticmethod - def ComputeOperationForConv2D(tf_operator, inputs, outputs): + def ComputeOperationForConv2D(self, tf_operator, inputs, outputs): assert ( tf_operator.BuiltinOptionsType() == tflite.BuiltinOptions.BuiltinOptions() .Conv2DOptions) @@ -86,8 +85,7 @@ class _OperationComputeMethod(object): # NOTE: Reference the comment 'NOTE' of ComputeOperationForConv2D - @staticmethod - def ComputeOperationForPooling(tf_operator, inputs, outputs): + def ComputeOperationForPooling(self, tf_operator, inputs, outputs): assert ( tf_operator.BuiltinOptionsType() == tflite.BuiltinOptions.BuiltinOptions() .Pool2DOptions) @@ -113,8 +111,7 @@ class _OperationComputeMethod(object): nonlinear_instr_num = 0 return (add_instr_num, mul_instr_num, nonlinear_instr_num) - @staticmethod - def ComputeOperationForSoftmax(tf_operator, inputs, outputs): + def ComputeOperationForSoftmax(self, tf_operator, inputs, outputs): assert ( tf_operator.BuiltinOptionsType() == tflite.BuiltinOptions.BuiltinOptions() .SoftmaxOptions) @@ -130,8 +127,7 @@ class _OperationComputeMethod(object): nonlinear_instr_num = input_dim + input_dim # sum of exp(x) and exp(x_i) return (add_instr_num, mul_instr_num, nonlinear_instr_num) - @staticmethod - def ComputeOperationForFullyConnected(tf_operator, inputs, outputs): + def ComputeOperationForFullyConnected(self, tf_operator, inputs, outputs): assert ( tf_operator.BuiltinOptionsType() == tflite.BuiltinOptions.BuiltinOptions() .FullyConnectedOptions) @@ -152,15 +148,13 @@ class _OperationComputeMethod(object): nonlinear_instr_num = 0 return (add_instr_num, mul_instr_num, nonlinear_instr_num) - @staticmethod - def ComputeOperationForNothing(tf_operator, inputs, outputs): + def ComputeOperationForNothing(self, tf_operator, inputs, outputs): add_instr_num = 0 mul_instr_num = 0 nonlinear_instr_num = 0 return (add_instr_num, mul_instr_num, nonlinear_instr_num) - @staticmethod - def NYI_ComputeOperation(tf_operator, inputs, outputs): + def NYI_ComputeOperation(self, tf_operator, inputs, outputs): pass operation_to_method_map = { @@ -171,7 +165,7 @@ class _OperationComputeMethod(object): "SOFTMAX": ComputeOperationForSoftmax, "FULLY_CONNECTED": ComputeOperationForFullyConnected, "CONCATENATION": ComputeOperationForNothing, - # ADAS + # Extension "TOPK_V2": NYI_ComputeOperation, "SUB": NYI_ComputeOperation, "STRIDED_SLICE": NYI_ComputeOperation, @@ -211,7 +205,7 @@ class Operation(object): return self.add_instr_num, self.mul_instr_num, self.nonlinear_instr_num = method( - self.tf_operator, self.inputs, self.outputs) + _OperationComputeMethod(), self.tf_operator, self.inputs, self.outputs) def TotalInstrNum(self): return (self.add_instr_num + self.mul_instr_num + self.nonlinear_instr_num) -- 2.7.4