1[
2{
3    "suite_name" : "test_arm_convolve_s16",
4    "op_type" : "conv",
5    "input_data_type": "int16_t",
6    "weights_data_type": "int8_t",
7    "bias_data_type": "int64_t",
8    "shift_and_mult_data_type": "int32_t",
9    "interpreter": "tensorflow",
10    "tflite_generator": "keras",
11    "groups": 1,
12    "tests" : [
13         {"name" : "int16xint8",
14          "in_ch" : 55,
15          "out_ch" : 4,
16          "input_w" : 10,
17          "input_h" : 8,
18          "filter_x" : 9,
19          "filter_y": 4,
20          "padding": "VALID"
21         },
22         {"name" : "int16xint8_spill",
23          "in_ch" : 55,
24          "out_ch" : 9,
25          "input_w" : 10,
26          "input_h" : 8,
27          "filter_x" : 9,
28          "filter_y": 4,
29          "padding": "VALID",
30          "input_min": 32667,
31          "input_max": 32767,
32          "out_activation_min": 32667
33         },
34         {"name" : "int16xint8_spill2",
35          "in_ch" : 12,
36          "out_ch" : 9,
37          "input_w" : 10,
38          "input_h" : 8,
39          "filter_x" : 9,
40          "filter_y": 4,
41          "padding": "VALID",
42          "out_activation_min": 32667,
43          "input_min": 32667,
44          "input_max": 32767,
45          "weights_min": 100
46        },
47        {"name" : "requantize_s64",
48         "in_ch" : 8,
49         "out_ch" : 8,
50         "input_w" : 4,
51         "input_h" : 4,
52         "filter_x" : 2,
53         "filter_y": 2,
54         "stride_x": 2,
55         "padding": "VALID",
56         "generate_bias": true,
57         "bias_min": -768,
58         "bias_max": 2147484647
59        },
60        {"name" : "int16xint8_dilation_1",
61         "in_ch" : 2,
62         "out_ch" : 2,
63         "input_w" : 32,
64         "input_h" : 32,
65         "filter_x" : 2,
66         "filter_y": 2,
67         "padding": "VALID",
68         "dilation_x": 2,
69         "dilation_y": 2,
70         "bias_min": -768,
71         "bias_max": 2147484647
72        },
73        {"name" : "int16xint8_dilation_2",
74         "in_ch" : 3,
75         "out_ch" : 4,
76         "input_w" : 7,
77         "input_h" : 8,
78         "filter_x" : 2,
79         "filter_y": 4,
80         "batch_size": 2,
81         "padding": "SAME",
82         "dilation_x": 2,
83         "dilation_y": 2,
84         "out_activation_min": -13335
85        },
86        {"name" : "int16xint8_dilation_3",
87         "in_ch" : 3,
88         "out_ch" : 4,
89         "input_w" : 7,
90         "input_h" : 8,
91         "filter_x" : 2,
92         "filter_y": 4,
93         "padding": "SAME",
94         "dilation_x": 2,
95         "out_activation_min": -23335
96        },
97        {"name" : "int16xint8xint32_1",
98         "in_ch" : 55,
99         "out_ch" : 4,
100         "input_w" : 10,
101         "input_h" : 8,
102         "filter_x" : 9,
103         "filter_y": 4,
104         "padding": "VALID",
105         "generate_bias": false,
106         "bias_data_type": "int32_t"
107        },
108        {"name" : "int16xint8xint32_2",
109         "in_ch" : 55,
110         "out_ch" : 9,
111         "input_w" : 10,
112         "input_h" : 8,
113         "filter_x" : 9,
114         "filter_y": 4,
115         "padding": "VALID",
116         "generate_bias": false,
117         "bias_data_type": "int32_t"
118        },
119        {"name" : "int16xint8xint32_3",
120         "in_ch" : 8,
121         "out_ch" : 8,
122         "input_w" : 4,
123         "input_h" : 4,
124         "filter_x" : 2,
125         "filter_y": 2,
126         "padding": "SAME",
127         "bias_data_type": "int32_t",
128         "bias_min": -768,
129         "bias_max": 2147484647
130        },
131        {"name" : "int16xint8xint32_4",
132         "in_ch" : 2,
133         "out_ch" : 2,
134         "input_w" : 32,
135         "input_h" : 32,
136         "filter_x" : 2,
137         "filter_y": 2,
138         "padding": "VALID",
139         "bias_data_type": "int32_t",
140         "bias_min": -768,
141         "dilation_x": 2,
142         "dilation_y": 2
143        },
144        {"name" : "int16xint8xint32_5",
145         "in_ch" : 3,
146         "out_ch" : 4,
147         "input_w" : 7,
148         "input_h" : 8,
149         "filter_x" : 2,
150         "filter_y": 4,
151         "padding": "SAME",
152         "bias_data_type": "int32_t",
153         "dilation_x": 2,
154         "dilation_y": 2,
155         "out_activation_min": -13335,
156         "out_activation_max": 32767
157        },
158        {"name" : "int16xint8xint32_6",
159         "in_ch" : 3,
160         "out_ch" : 4,
161         "input_w" : 7,
162         "input_h" : 8,
163         "filter_x" : 2,
164         "filter_y": 4,
165         "padding": "SAME",
166         "bias_data_type": "int32_t",
167         "dilation_x": 2
168        }
169    ]
170},
171{
172    "suite_name" : "test_arm_lstm_unidirectional_s16",
173    "op_type" : "lstm",
174    "input_data_type": "int16_t",
175    "weights_data_type": "int8_t",
176    "bias_data_type": "int64_t",
177    "interpreter": "tflite_micro",
178    "tflite_generator": "json",
179    "tests" : [
180        {"name" : "lstm_1_s16",
181         "time_major" : true,
182         "batch_size" : 1,
183         "time_steps" : 10,
184         "input_size" : 22,
185         "hidden_size" : 11,
186         "json_template": "lstm_s16_tm.json"
187        },
188        {"name" : "lstm_2_s16",
189         "time_major" : false,
190         "batch_size" : 1,
191         "time_steps" : 9,
192         "input_size" : 6,
193         "hidden_size" : 7,
194         "json_template": "lstm_s16.json"
195        },
196        {"name" : "lstm_one_time_step_s16",
197         "time_major" : false,
198         "batch_size" : 3,
199         "time_steps" : 1,
200         "input_size" : 22,
201         "hidden_size" : 3,
202         "json_template": "lstm_s16.json"
203        }
204    ]
205},
206{
207    "suite_name" : "test_arm_lstm_unidirectional_s8",
208    "op_type" : "lstm",
209    "input_data_type": "int8_t",
210    "weights_data_type": "int8_t",
211    "bias_data_type": "int32_t",
212    "interpreter": "tensorflow",
213    "tflite_generator": "keras",
214    "tests" : [
215        {"name" : "lstm_1",
216         "time_major" : true,
217         "batch_size" : 1,
218         "time_steps" : 10,
219         "input_size" : 22,
220         "hidden_size" : 11
221        },
222        {"name" : "lstm_2",
223         "time_major" : false,
224         "batch_size" : 1,
225         "time_steps" : 9,
226         "input_size" : 6,
227         "hidden_size" : 7
228        },
229        {"name" : "lstm_one_time_step",
230         "time_major" : false,
231         "batch_size" : 3,
232         "time_steps" : 1,
233         "input_size" : 22,
234         "hidden_size" : 3
235        }
236    ]
237},
238{
239    "suite_name" : "test_arm_fully_connected_s4",
240    "op_type" : "fully_connected",
241    "input_data_type": "int8_t",
242    "weights_data_type": "int8_t",
243    "bias_data_type": "int32_t",
244    "interpreter": "tensorflow",
245    "tflite_generator": "json",
246    "w_type": "INT4",
247    "w_scale": 0.005,
248    "w_zp": 0,
249    "bias_scale": 0.00002,
250    "bias_zp": 0,
251    "output_scale": 0.1,
252    "input_scale": 0.1,
253    "tests" : [
254        {"name" : "fully_connected_int4",
255          "in_ch" : 82,
256         "out_ch" : 21,
257         "bias_min": -128,
258         "bias_max": 127,
259         "input_zp": 3,
260         "output_zp": -3
261        },
262         {"name" : "fully_connected_int4_2",
263          "in_ch" : 84,
264         "out_ch" : 23,
265         "bias_min": -128,
266         "bias_max": 127,
267         "input_zp": -4,
268         "output_zp": 16
269         },
270        {"name" : "fully_connected_int4_3",
271          "in_ch" : 86,
272         "out_ch" : 25,
273         "bias_min": -128,
274         "bias_max": 127,
275         "input_zp": 1,
276         "output_zp": 0
277        },
278        {"name" : "fully_connected_int4_4",
279          "in_ch" : 85,
280         "out_ch" : 19,
281         "generate_bias": false,
282         "input_zp": -2,
283         "output_zp": 0
284        },
285        {"name" : "fully_connected_int4_5",
286          "in_ch" : 89,
287         "out_ch" : 22,
288         "input_zp": 120,
289         "output_zp": 100
290        },
291        {"name" : "fully_connected_int4_6",
292          "in_ch" : 89,
293         "out_ch" : 22,
294         "generate_bias": false,
295         "input_zp": -127,
296         "output_zp": 128
297        }
298
299    ]
300}
301]
302