def __init__(self, model, subgraph, exp_tab): try: from tflite.BuiltinOperator import BuiltinOperator from tflite.BuiltinOptions import BuiltinOptions from tflite.ActivationFunctionType import ActivationFunctionType except ImportError: raise ImportError("The tflite package must be installed") self.model = model self.subgraph = subgraph self.exp_tab = exp_tab self.builtin_op_code = build_str_map(BuiltinOperator()) self.activation_fn_type = build_str_map(ActivationFunctionType()) self.builtin_options = build_str_map(BuiltinOptions()) # Add more operators self.convert_map = { 'CONV_2D': self.convert_conv2d, 'DEPTHWISE_CONV_2D': self.convert_depthwise_conv2d, 'AVERAGE_POOL_2D': self.convert_average_pool2d, 'RESHAPE': self.convert_reshape, 'SOFTMAX': self.convert_softmax, 'SQUEEZE': self.convert_squeeze, 'MAX_POOL_2D': self.convert_max_pool2d, 'CONCATENATION': self.convert_concatenation, 'ADD': self.convert_add }
def __init__(self, model, subgraph, exp_tab): try: from tflite.BuiltinOperator import BuiltinOperator from tflite.BuiltinOptions import BuiltinOptions from tflite.ActivationFunctionType import ActivationFunctionType except ImportError: raise ImportError("The tflite package must be installed") self.model = model self.subgraph = subgraph self.exp_tab = exp_tab self.builtin_op_code = build_str_map(BuiltinOperator()) self.activation_fn_type = build_str_map(ActivationFunctionType()) self.builtin_options = build_str_map(BuiltinOptions()) # Add more operators self.convert_map = { 'CONV_2D': self.convert_conv2d, 'DEPTHWISE_CONV_2D': self.convert_depthwise_conv2d, 'AVERAGE_POOL_2D': self.convert_average_pool2d, 'RESHAPE': self.convert_reshape, 'RESIZE_BILINEAR': self.convert_resize_bilinear, 'RESIZE_NEAREST_NEIGHBOR': self.convert_resize_nearest_neighbor, 'SOFTMAX': self.convert_softmax, 'SQUEEZE': self.convert_squeeze, 'MAX_POOL_2D': self.convert_max_pool2d, 'CONCATENATION': self.convert_concatenation, 'ADD': self.convert_add, 'SUB': self.convert_sub, 'MUL': self.convert_mul, 'DIV': self.convert_div, 'POW': self.convert_pow, 'MAXIMUM': self.convert_maximum, 'MINIMUM': self.convert_minimum, 'GREATER': self.convert_greater, 'ZEROS_LIKE': self.convert_zeros_like, 'REDUCE_MIN': self._convert_reduce_min, 'REDUCE_MAX': self._convert_reduce_max, 'MEAN': self._convert_reduce_mean, 'REDUCE_PROD': self._convert_reduce_prod, 'FULLY_CONNECTED': self.convert_fully_connected, 'PAD': self.convert_pad, 'PACK': self.convert_pack, 'LOGISTIC': self.convert_logistic, 'TANH': self.convert_tanh, 'RELU': self.convert_relu, 'SPLIT': self.convert_split, 'TRANSPOSE': self.convert_transpose, 'TILE': self.convert_tile, 'BATCH_TO_SPACE_ND': self.convert_batch_to_space_nd, 'SPACE_TO_BATCH_ND': self.convert_space_to_batch_nd }
def test_all_resize(): """ Resize """ data = [np.random.rand(1, 16, 16, 3).astype("float32"), np.array([8, 8], dtype=np.int32)] ### RESIZE_BILINEAR _test_resize(tf.image.resize_bilinear, data, align_corners=False) _test_resize(tf.image.resize_bilinear, data, align_corners=True) ### RESIZE_NEAREST_NEIGHBOR (was added in v1.13) # According to topi resize.h # Align corners not supported for nearest neighbour from tflite.BuiltinOperator import BuiltinOperator if 'RESIZE_NEAREST_NEIGHBOR' in dir(BuiltinOperator()): _test_resize(tf.image.resize_nearest_neighbor, data, align_corners=False)
def __init__(self, model, subgraph, exp_tab): try: from tflite.BuiltinOperator import BuiltinOperator from tflite.BuiltinOptions import BuiltinOptions from tflite.ActivationFunctionType import ActivationFunctionType except ImportError: raise ImportError("The tflite package must be installed") self.model = model self.subgraph = subgraph self.exp_tab = exp_tab self.builtin_op_code = build_str_map(BuiltinOperator()) self.activation_fn_type = build_str_map(ActivationFunctionType()) self.builtin_options = build_str_map(BuiltinOptions()) # Add more operators self.convert_map = { 'CONV_2D': self.convert_conv2d, 'DEPTHWISE_CONV_2D': self.convert_depthwise_conv2d, 'AVERAGE_POOL_2D': self.convert_average_pool2d, 'RESHAPE': self.convert_reshape, 'RESIZE_BILINEAR': self.convert_resize_bilinear, 'RESIZE_NEAREST_NEIGHBOR': self.convert_resize_nearest_neighbor, 'SOFTMAX': self.convert_softmax, 'SQUEEZE': self.convert_squeeze, 'MAX_POOL_2D': self.convert_max_pool2d, 'CONCATENATION': self.convert_concatenation, 'ADD': self.convert_add, 'SUB': self.convert_sub, 'MUL': self.convert_mul, 'DIV': self.convert_div, 'POW': self.convert_pow, 'MAXIMUM': self.convert_maximum, 'MINIMUM': self.convert_minimum, 'FULLY_CONNECTED': self.convert_fully_connected, 'PAD': self.convert_pad, 'LOGISTIC': self.convert_logistic, }