[ { "suite_name" : "test_arm_convolve_s16", "op_type" : "conv", "input_data_type": "int16_t", "weights_data_type": "int8_t", "bias_data_type": "int64_t", "shift_and_mult_data_type": "int32_t", "interpreter": "tensorflow", "tflite_generator": "keras", "groups": 1, "tests" : [ {"name" : "int16xint8", "in_ch" : 55, "out_ch" : 4, "input_w" : 10, "input_h" : 8, "filter_x" : 9, "filter_y": 4, "padding": "VALID" }, {"name" : "int16xint8_spill", "in_ch" : 55, "out_ch" : 9, "input_w" : 10, "input_h" : 8, "filter_x" : 9, "filter_y": 4, "padding": "VALID", "input_min": 32667, "input_max": 32767, "out_activation_min": 32667 }, {"name" : "int16xint8_spill2", "in_ch" : 12, "out_ch" : 9, "input_w" : 10, "input_h" : 8, "filter_x" : 9, "filter_y": 4, "padding": "VALID", "out_activation_min": 32667, "input_min": 32667, "input_max": 32767, "weights_min": 100 }, {"name" : "requantize_s64", "in_ch" : 8, "out_ch" : 8, "input_w" : 4, "input_h" : 4, "filter_x" : 2, "filter_y": 2, "stride_x": 2, "padding": "VALID", "generate_bias": true, "bias_min": -768, "bias_max": 2147484647 }, {"name" : "int16xint8_dilation_1", "in_ch" : 2, "out_ch" : 2, "input_w" : 32, "input_h" : 32, "filter_x" : 2, "filter_y": 2, "padding": "VALID", "dilation_x": 2, "dilation_y": 2, "bias_min": -768, "bias_max": 2147484647 }, {"name" : "int16xint8_dilation_2", "in_ch" : 3, "out_ch" : 4, "input_w" : 7, "input_h" : 8, "filter_x" : 2, "filter_y": 4, "batch_size": 2, "padding": "SAME", "dilation_x": 2, "dilation_y": 2, "out_activation_min": -13335 }, {"name" : "int16xint8_dilation_3", "in_ch" : 3, "out_ch" : 4, "input_w" : 7, "input_h" : 8, "filter_x" : 2, "filter_y": 4, "padding": "SAME", "dilation_x": 2, "out_activation_min": -23335 }, {"name" : "int16xint8xint32_1", "in_ch" : 55, "out_ch" : 4, "input_w" : 10, "input_h" : 8, "filter_x" : 9, "filter_y": 4, "padding": "VALID", "generate_bias": false, "bias_data_type": "int32_t" }, {"name" : "int16xint8xint32_2", "in_ch" : 55, "out_ch" : 9, "input_w" : 10, "input_h" : 8, "filter_x" : 9, "filter_y": 4, "padding": "VALID", "generate_bias": false, "bias_data_type": "int32_t" }, {"name" : "int16xint8xint32_3", "in_ch" : 8, "out_ch" : 8, "input_w" : 4, "input_h" : 4, "filter_x" : 2, "filter_y": 2, "padding": "SAME", "bias_data_type": "int32_t", "bias_min": -768, "bias_max": 2147484647 }, {"name" : "int16xint8xint32_4", "in_ch" : 2, "out_ch" : 2, "input_w" : 32, "input_h" : 32, "filter_x" : 2, "filter_y": 2, "padding": "VALID", "bias_data_type": "int32_t", "bias_min": -768, "dilation_x": 2, "dilation_y": 2 }, {"name" : "int16xint8xint32_5", "in_ch" : 3, "out_ch" : 4, "input_w" : 7, "input_h" : 8, "filter_x" : 2, "filter_y": 4, "padding": "SAME", "bias_data_type": "int32_t", "dilation_x": 2, "dilation_y": 2, "out_activation_min": -13335, "out_activation_max": 32767 }, {"name" : "int16xint8xint32_6", "in_ch" : 3, "out_ch" : 4, "input_w" : 7, "input_h" : 8, "filter_x" : 2, "filter_y": 4, "padding": "SAME", "bias_data_type": "int32_t", "dilation_x": 2 } ] }, { "suite_name" : "test_arm_lstm_unidirectional_s16", "op_type" : "lstm", "input_data_type": "int16_t", "weights_data_type": "int8_t", "bias_data_type": "int64_t", "interpreter": "tflite_micro", "tflite_generator": "json", "tests" : [ {"name" : "lstm_1_s16", "time_major" : true, "batch_size" : 1, "time_steps" : 10, "input_size" : 22, "hidden_size" : 11, "json_template": "lstm_s16_tm.json" }, {"name" : "lstm_2_s16", "time_major" : false, "batch_size" : 1, "time_steps" : 9, "input_size" : 6, "hidden_size" : 7, "json_template": "lstm_s16.json" }, {"name" : "lstm_one_time_step_s16", "time_major" : false, "batch_size" : 3, "time_steps" : 1, "input_size" : 22, "hidden_size" : 3, "json_template": "lstm_s16.json" } ] }, { "suite_name" : "test_arm_lstm_unidirectional_s8", "op_type" : "lstm", "input_data_type": "int8_t", "weights_data_type": "int8_t", "bias_data_type": "int32_t", "interpreter": "tensorflow", "tflite_generator": "keras", "tests" : [ {"name" : "lstm_1", "time_major" : true, "batch_size" : 1, "time_steps" : 10, "input_size" : 22, "hidden_size" : 11 }, {"name" : "lstm_2", "time_major" : false, "batch_size" : 1, "time_steps" : 9, "input_size" : 6, "hidden_size" : 7 }, {"name" : "lstm_one_time_step", "time_major" : false, "batch_size" : 3, "time_steps" : 1, "input_size" : 22, "hidden_size" : 3 } ] }, { "suite_name" : "test_arm_fully_connected_s4", "op_type" : "fully_connected", "input_data_type": "int8_t", "weights_data_type": "int8_t", "bias_data_type": "int32_t", "interpreter": "tensorflow", "tflite_generator": "json", "w_type": "INT4", "w_scale": 0.005, "w_zp": 0, "bias_scale": 0.00002, "bias_zp": 0, "output_scale": 0.1, "input_scale": 0.1, "tests" : [ {"name" : "fully_connected_int4", "in_ch" : 82, "out_ch" : 21, "bias_min": -128, "bias_max": 127, "input_zp": 3, "output_zp": -3 }, {"name" : "fully_connected_int4_2", "in_ch" : 84, "out_ch" : 23, "bias_min": -128, "bias_max": 127, "input_zp": -4, "output_zp": 16 }, {"name" : "fully_connected_int4_3", "in_ch" : 86, "out_ch" : 25, "bias_min": -128, "bias_max": 127, "input_zp": 1, "output_zp": 0 }, {"name" : "fully_connected_int4_4", "in_ch" : 85, "out_ch" : 19, "generate_bias": false, "input_zp": -2, "output_zp": 0 }, {"name" : "fully_connected_int4_5", "in_ch" : 89, "out_ch" : 22, "input_zp": 120, "output_zp": 100 }, {"name" : "fully_connected_int4_6", "in_ch" : 89, "out_ch" : 22, "generate_bias": false, "input_zp": -127, "output_zp": 128 } ] } ]