From 5779009a46b2bd21dbf1f8c7a471cff080a71848 Mon Sep 17 00:00:00 2001 From: Joseph Yiu <77114984+joseph-yiu@users.noreply.github.com> Date: Wed, 6 Sep 2023 12:06:13 +0100 Subject: [PATCH] Fix an issue in KWS model and reference data It was found that the NN model is not fully matching TensorFlow Lite Micro due to limitations in a conversion script. This patch corrects the model (ee_nn_tables.c) to fully match reference KWS model, and the reference data (kws_expected.c) is also updated accordingly. The patching was agreed by AudioMark workgroup members on Sept-5-2023. --- src/ee_nn_tables.c | 275 +++++++++++++++++-------------------- tests/data/kws_expected.c | 277 +++++++++++++++++++------------------- 2 files changed, 259 insertions(+), 293 deletions(-) diff --git a/src/ee_nn_tables.c b/src/ee_nn_tables.c index 5b8d0c1..d35ff89 100644 --- a/src/ee_nn_tables.c +++ b/src/ee_nn_tables.c @@ -1,6 +1,6 @@ /** - * Copyright (C) 2022 EEMBC - * Copyright (C) 2022 Arm Limited + * Copyright (C) 2022-2023 EEMBC + * Copyright (C) 2022-2023 Arm Limited * * All EEMBC Benchmark Software are products of EEMBC and are provided under the * terms of the EEMBC Benchmark License Agreements. The EEMBC Benchmark Software @@ -86,24 +86,20 @@ const int32_t ds_cnn_s_layer_1_conv2d_bias[64] 249, 350, 328, 794, 1021, 673, 1087, 45, 400, 182, 378, 382, 511, 229, 215, 179, -348, 222, 384, -150, 195, 36, 70, 219, 600 }; -const int32_t ds_cnn_s_layer_1_conv2d_output_mult[64] - = { 1346044985, 1772008588, 1601623147, 1913185096, 1319270130, 1635700235, - 1674645479, 1528600815, 1090466823, 2107911315, 1402028773, 1190264010, - 1961866651, 1226775176, 1372819840, 1513996349, 1174442505, 1630832080, - 1182961777, 1835294609, 2005680050, 1689249945, 1134280223, 1645436546, - 1148884689, 1684381790, 1387424307, 1533468970, 2132252092, 1974037040, - 1533468970, 1535903048, 1436105861, 1277890809, 1791481210, 1713590723, - 1591886836, 1270588576, 1752535966, 1462880716, 1830426454, 1158621000, - 1411765084, 1869371697, 1835294609, 2103043159, 1579716447, 1667343246, - 1922921407, 1238945565, 1212170710, 1752535966, 1202434399, 1187829933, - 1983773351, 1504260038, 1487221494, 2088438693, 1178093622, 1735497422, - 1153752844, 1320487169, 1594320914, 2005680050 }; +const int32_t ds_cnn_s_layer_1_conv2d_output_mult[64] = { + 1344975618, 1771160655, 1603486984, 1915054848, 1317808242, 1634365720, 1674100995, 1529276376, + 1092364031, 2109349286, 1403122607, 1191356374, 1961825484, 1227527781, 1372002446, 1514340830, + 1174334277, 1630686239, 1184328807, 1834318652, 2003736994, 1688994887, 1134687482, 1648913058, + 1149164758, 1682070606, 1388215114, 1533947206, 2133834764, 1975090033, 1533776479, 1535630813, + 1436584914, 1277990366, 1790988621, 1713535197, 1593014136, 1269568506, 1752060508, 1462929543, + 1830762435, 1159633568, 1412735162, 1864938251, 1836320618, 2101924017, 1578972886, 1666715114, + 1924410392, 1238578125, 1211485840, 1751223451, 1201932508, 1186891621, 1982723858, 1501984320, + 1486787087, 2090248431, 1175956252, 1735898279, 1152661257, 1320115533, 1593656239, 2007090323}; -const int32_t ds_cnn_s_layer_1_conv2d_output_shift[64] - = { -7, -8, -8, -8, -8, -9, -7, -7, -8, -8, -7, -7, -8, -7, -7, -7, - -6, -8, -8, -8, -8, -8, -7, -9, -7, -8, -7, -8, -8, -7, -7, -7, - -7, -7, -8, -7, -8, -8, -8, -6, -8, -7, -8, -9, -8, -9, -7, -7, - -8, -7, -8, -8, -7, -7, -7, -8, -7, -8, -8, -7, -7, -6, -7, -8 }; +const int32_t ds_cnn_s_layer_1_conv2d_output_shift[64] = { + -7, -8, -8, -8, -8, -9, -7, -7, -8, -8, -7, -7, -8, -7, -7, -7, -6, -8, -8, -8, -8, -8, + -7, -9, -7, -8, -7, -8, -8, -7, -7, -7, -7, -7, -8, -7, -8, -8, -8, -6, -8, -7, -8, -9, + -8, -9, -7, -7, -8, -7, -8, -8, -7, -7, -7, -8, -7, -8, -8, -7, -7, -6, -7, -8}; const int8_t ds_cnn_s_layer_1_conv2d_weights[2560] = { 89, 14, 1, 32, 53, -8, -2, 24, 70, -25, 15, -23, @@ -329,24 +325,20 @@ const int32_t ds_cnn_s_layer_2_dw_conv2d_bias[64] 24, -306, 157, -113, -257, -302, 479, -22, 256, 666, 350, 536, -59, -65, -120, 227, -171, -5, 183, -201 }; -const int32_t ds_cnn_s_layer_2_dw_conv2d_output_mult[64] - = { 1133392350, 2002254797, 1648375177, 1390883764, 2059540282, 1683567626, - 2094146190, 1307008428, 1462001836, 1484828049, 1456771847, 1236525775, - 1415322964, 1196249973, 1399681876, 1450222142, 1317566163, 1989937440, - 1440739732, 1562935733, 1330274547, 1856792677, 1674476243, 1904497996, - 1378273136, 1481211048, 1379446218, 1501251192, 1424414346, 1506627816, - 1662452157, 1560394056, 1416984829, 1605557698, 1203972760, 1110712772, - 1622567382, 1335553414, 1648375177, 2110178305, 1774676964, 2048591520, - 1848092322, 1216681144, 1075031540, 1935780172, 1420601831, 1444063463, - 1083438625, 1225185986, 1656195721, 1803026436, 1715045316, 1649157232, - 1979184192, 1595390991, 1385702653, 1477496289, 1976251488, 1328123897, - 1115551734, 2093950676, 1460291092, 1862658085 }; +const int32_t ds_cnn_s_layer_2_dw_conv2d_output_mult[64] = { + 1133432800, 2002281378, 1648327595, 1390887799, 2059700086, 1683555272, 2094210525, 1306990112, + 1461986737, 1484842019, 1456857004, 1236481862, 1415306564, 1196234705, 1399779616, 1450196016, + 1317486199, 1989967796, 1440690022, 1563016554, 1330214664, 1856795389, 1674471718, 1904467750, + 1378242002, 1481070649, 1379405715, 1501284041, 1424444471, 1506691820, 1662470779, 1560385226, + 1416975749, 1605582306, 1203933220, 1110678212, 1622503033, 1335650940, 1648367472, 2110250137, + 1774627157, 2048655099, 1848102047, 1216691274, 1075050400, 1935799328, 1420533350, 1444105505, + 1083438203, 1225181408, 1656228863, 1803073760, 1715014674, 1649099094, 1979102893, 1595567199, + 1385711179, 1477496114, 1976195340, 1328034091, 1115547835, 2093930294, 1460245082, 1862667124}; -const int32_t ds_cnn_s_layer_2_dw_conv2d_output_shift[64] - = { -7, -7, -7, -6, -8, -6, -7, -6, -5, -6, -7, -6, -7, -6, -7, -6, - -7, -6, -7, -7, -7, -6, -6, -7, -6, -8, -6, -6, -6, -7, -7, -7, - -6, -6, -6, -6, -7, -7, -6, -7, -7, -7, -6, -6, -6, -6, -7, -6, - -6, -6, -7, -6, -6, -7, -7, -8, -6, -6, -7, -7, -5, -7, -6, -7 }; +const int32_t ds_cnn_s_layer_2_dw_conv2d_output_shift[64] = { + -7, -7, -7, -6, -8, -6, -7, -6, -5, -6, -7, -6, -7, -6, -7, -6, -7, -6, -7, -7, -7, -6, + -6, -7, -6, -8, -6, -6, -6, -7, -7, -7, -6, -6, -6, -6, -7, -7, -6, -7, -7, -7, -6, -6, + -6, -6, -7, -6, -6, -6, -7, -6, -6, -7, -7, -8, -6, -6, -7, -7, -5, -7, -6, -7}; const int8_t ds_cnn_s_layer_2_dw_conv2d_weights[576] = { 4, -127, 100, 127, -50, 96, -32, -92, 29, 21, 59, 83, @@ -406,24 +398,21 @@ const int32_t ds_cnn_s_layer_3_conv2d_bias[64] 912, -756, 172, 727, 619, 1329, 584, 412, 1311, 135, 386, 1461, -727, -193, -51, 303, 913, 826, 873, 127 }; -const int32_t ds_cnn_s_layer_3_conv2d_output_mult[64] - = { 1250403529, 1976119001, 1136227765, 1263740299, 2133883234, 1172659917, - 1570486014, 1636194004, 1984901752, 1895122518, 1973841991, 1752646778, - 1233163314, 1284883959, 1900977686, 1919193762, 1139480635, 1082230110, - 1783874337, 1104674918, 2135184382, 1784524912, 1141757645, 1360025274, - 2117618880, 1822258213, 1990106345, 1301798887, 1909435150, 1420528671, - 2111113138, 1134926616, 1646603190, 1082230110, 1154769128, 1795584672, - 1842426012, 1225031137, 1263740299, 1152817406, 1992708642, 1781597328, - 1130047310, 2048007445, 1803391562, 1223079414, 1341809198, 1118662262, - 1383120657, 1703203142, 1167780611, 1709058309, 1591954961, 2003768402, - 1461514843, 1635543430, 1867147829, 2077933856, 2038899407, 1414348216, - 1729226108, 1655060654, 1207465635, 1266017309 }; +const int32_t ds_cnn_s_layer_3_conv2d_output_mult[64] = { + 1250337313, 1976090196, 1136108951, 1263704783, 2134051865, 1172766850, 1570215474, 1636182984, + 1984700410, 1894958513, 1973789464, 1752915356, 1233119537, 1285041733, 1901028514, 1919310469, + 1139345488, 1082294547, 1783858080, 1104563438, 2135007966, 1784376120, 1141759295, 1359988295, + 2117599257, 1822231039, 1990163457, 1301611733, 1909441206, 1420396724, 2110845958, 1134862399, + 1646701462, 1082275461, 1154833436, 1795268738, 1842711784, 1225182017, 1263606704, 1152714623, + 1992623691, 1781746538, 1130046751, 2048060756, 1803137337, 1223065704, 1341861904, 1118703271, + 1382961387, 1703519361, 1167889779, 1708861684, 1592180055, 2003486620, 1461600875, 1635244454, + 1867189615, 2077905600, 2038578055, 1414392462, 1729345458, 1655176713, 1207627741, 1266063833}; -const int32_t ds_cnn_s_layer_3_conv2d_output_shift[64] - = { -7, -7, -7, -7, -8, -7, -8, -8, -8, -8, -8, -8, -7, -7, -8, -8, - -7, -7, -8, -7, -8, -8, -7, -7, -8, -8, -8, -8, -8, -7, -8, -7, - -8, -7, -7, -8, -8, -7, -7, -7, -8, -7, -7, -8, -8, -7, -7, -7, - -7, -8, -7, -8, -8, -8, -7, -8, -8, -8, -8, -7, -8, -7, -7, -7 }; + +const int32_t ds_cnn_s_layer_3_conv2d_output_shift[64] = { + -7, -7, -7, -7, -8, -7, -8, -8, -8, -8, -8, -8, -7, -7, -8, -8, -7, -7, -8, -7, -8, -8, + -7, -7, -8, -8, -8, -8, -8, -7, -8, -7, -8, -7, -7, -8, -8, -7, -7, -7, -8, -7, -7, -8, + -8, -7, -7, -7, -7, -8, -7, -8, -8, -8, -7, -8, -8, -8, -8, -7, -8, -7, -7, -7}; const int8_t ds_cnn_s_layer_3_conv2d_weights[4096] = { 24, -9, -72, -23, -49, -28, 20, -64, 37, -57, -26, -79, @@ -777,24 +766,20 @@ const int32_t ds_cnn_s_layer_4_dw_conv2d_bias[64] 767, -628, -44, -474, 821, -226, -145, -121, -22, -285, -1228, -719, -247, 77, -231, -212, 561, 251, -355, -795 }; -const int32_t ds_cnn_s_layer_4_dw_conv2d_output_mult[64] - = { 1516841758, 1922406348, 1195560132, 1346011512, 1410544587, 1597602449, - 1646411091, 1961780330, 2136258645, 1234556727, 1807932472, 1412934701, - 1458221070, 1342740830, 1411425156, 1409286633, 1337205829, 1121718192, - 1220341839, 1123856715, 1524137895, 1427526976, 1507029712, 1198956609, - 1778999514, 1463252889, 2134497508, 1164237060, 1465517207, 1678111549, - 1255564570, 2087198412, 1571562787, 1164740242, 1221348203, 1101968303, - 1939011350, 1468913685, 1955616352, 1782773378, 1245438035, 1105238985, - 1236317864, 1257325707, 1555838353, 1807680881, 1862527705, 1158702060, - 2012727495, 1993858174, 1556215740, 1672324957, 1846803272, 1747550647, - 1407148110, 1231537636, 1142851831, 1479103118, 2113992847, 1946810669, - 1561876536, 1755601557, 1474322890, 1437339022 }; +const int32_t ds_cnn_s_layer_4_dw_conv2d_output_mult[64] = { + 1516893317, 1922283504, 1195554122, 1346048824, 1410528528, 1597603718, 1646349819, 1961801214, + 2136205496, 1234614572, 1807975996, 1412964674, 1458233228, 1342784971, 1411484991, 1409282456, + 1337200371, 1121760621, 1220359010, 1123841783, 1524056479, 1427479385, 1507087229, 1198991835, + 1779028115, 1463228766, 2134454480, 1164246130, 1465495738, 1678200127, 1255519214, 2087418157, + 1571603369, 1164688395, 1221328477, 1101940259, 1938952716, 1468869015, 1955629544, 1782867205, + 1245439449, 1105271711, 1236374960, 1257345561, 1555873046, 1807597230, 1862650550, 1158686133, + 2012623087, 1993844829, 1556272431, 1672355440, 1846814317, 1747587151, 1407223670, 1231487322, + 1142811239, 1479046371, 2113987065, 1946839435, 1561921584, 1755664248, 1474327204, 1437288753}; -const int32_t ds_cnn_s_layer_4_dw_conv2d_output_shift[64] - = { -7, -7, -6, -7, -6, -7, -6, -6, -7, -6, -7, -6, -6, -6, -6, -6, - -7, -6, -6, -6, -7, -6, -6, -6, -7, -6, -7, -6, -6, -7, -6, -8, - -6, -6, -5, -6, -6, -6, -7, -7, -5, -6, -6, -6, -6, -7, -7, -6, - -7, -6, -6, -6, -6, -6, -7, -6, -6, -7, -6, -7, -6, -7, -6, -7 }; +const int32_t ds_cnn_s_layer_4_dw_conv2d_output_shift[64] = { + -7, -7, -6, -7, -6, -7, -6, -6, -7, -6, -7, -6, -6, -6, -6, -6, -7, -6, -6, -6, -7, -6, + -6, -6, -7, -6, -7, -6, -6, -7, -6, -8, -6, -6, -5, -6, -6, -6, -7, -7, -5, -6, -6, -6, + -6, -7, -7, -6, -7, -6, -6, -6, -6, -6, -7, -6, -6, -7, -6, -7, -6, -7, -6, -7}; const int8_t ds_cnn_s_layer_4_dw_conv2d_weights[576] = { 71, -55, 11, 122, -53, 103, 62, 48, -127, 0, 118, 8, @@ -854,24 +839,20 @@ const int32_t ds_cnn_s_layer_5_conv2d_bias[64] 152, 349, -239, -1076, 325, -537, -147, 77, 862, 859, 2477, 265, -240, 1288, -199, 484, 727, -1018, 95, -617 }; -const int32_t ds_cnn_s_layer_5_conv2d_output_mult[64] - = { 1743520774, 1148672510, 2069848192, 1231652910, 1135930201, 1116972132, - 1905130543, 1111999524, 1913211031, 1748493382, 1470027319, 2036283086, - 1502349273, 1962937114, 1969774450, 1550832204, 1473756775, 1244084431, - 1176332643, 1906995271, 2043120422, 1262420924, 1079677570, 1846080819, - 2120195850, 1230409758, 1097703275, 1079366782, 1803192073, 1954856625, - 1703739908, 1076569690, 1101121943, 2105899601, 1826811962, 1887104838, - 1082163874, 1325200103, 1361562301, 1522239706, 1903887391, 1601801438, - 2065497159, 1516645522, 1895185326, 2053687215, 2001474828, 1877781197, - 1112931888, 1123498681, 1766208299, 2146302044, 1098014063, 1215491934, - 1915075759, 1099568003, 1294121302, 2111493786, 1775842728, 1079677570, - 2122060578, 1690376023, 1926264128, 1184723920 }; +const int32_t ds_cnn_s_layer_5_conv2d_output_mult[64] = { + 1743753014, 1148798988, 2070034435, 1231543400, 1135983570, 1116933169, 1905305546, 1111935703, + 1913409107, 1748397142, 1469758910, 2036236361, 1502131184, 1962852347, 1969828958, 1550935766, + 1473660035, 1244021905, 1176352817, 1907071733, 2043173607, 1262493057, 1079534412, 1846042632, + 2120335008, 1230436422, 1097724369, 1079444612, 1803109419, 1955138088, 1703944638, 1076596557, + 1100991322, 2106201029, 1826685203, 1886946120, 1082250337, 1325290225, 1361407614, 1522244206, + 1904106525, 1601708422, 2065437053, 1516836670, 1894938968, 2053718338, 2001292667, 1877922417, + 1112938626, 1123637268, 1766144249, 2146008682, 1098004913, 1215505603, 1915202935, 1099511251, + 1294057782, 2111448067, 1775629905, 1079655038, 2122105536, 1690416030, 1926038267, 1184865289}; -const int32_t ds_cnn_s_layer_5_conv2d_output_shift[64] - = { -7, -6, -7, -6, -6, -6, -7, -6, -7, -7, -7, -7, -7, -7, -7, -7, - -7, -6, -6, -7, -7, -6, -6, -7, -7, -6, -6, -6, -7, -7, -7, -6, - -6, -7, -7, -7, -6, -6, -6, -6, -7, -7, -7, -7, -7, -7, -7, -7, - -6, -6, -6, -7, -6, -6, -7, -6, -6, -7, -7, -6, -7, -6, -7, -6 }; +const int32_t ds_cnn_s_layer_5_conv2d_output_shift[64] = { + -7, -6, -7, -6, -6, -6, -7, -6, -7, -7, -7, -7, -7, -7, -7, -7, -7, -6, -6, -7, -7, -6, + -6, -7, -7, -6, -6, -6, -7, -7, -7, -6, -6, -7, -7, -7, -6, -6, -6, -6, -7, -7, -7, -7, + -7, -7, -7, -7, -6, -6, -6, -7, -6, -6, -7, -6, -6, -7, -7, -6, -7, -6, -7, -6}; const int8_t ds_cnn_s_layer_5_conv2d_weights[4096] = { 100, 72, -33, -27, 35, -18, -72, -123, 89, -32, -49, -44, @@ -1226,24 +1207,20 @@ const int32_t ds_cnn_s_layer_6_dw_conv2d_bias[64] -459, 2134, -1788, -1745, -1625, -2020, -552, -1802, -1331, 1076, -1524, 1502, 1532, -536 }; -const int32_t ds_cnn_s_layer_6_dw_conv2d_output_mult[64] - = { 1863426826, 2082125589, 1839100722, 2007730222, 1261650964, 1794699677, - 1228586356, 1503731128, 1340769847, 1383281486, 1780765307, 1995212906, - 1640831163, 1435948682, 1400994668, 1155371867, 2040086302, 1767303288, - 1995449082, 1441144549, 1626306353, 1866260936, 1307469063, 2099838772, - 1722429892, 1330141937, 1449528789, 1461219490, 1620401959, 1092903376, - 1497826734, 1091368234, 1957660959, 1350925405, 1724319298, 1294125132, - 1668817992, 1535378682, 1404773481, 1289755881, 1935932788, 1098453507, - 1648743051, 1172494611, 2131958677, 1375487685, 1603869655, 1545770415, - 1664566828, 1163401844, 1477279442, 1605522885, 1370291818, 2023317823, - 2113536967, 1642602481, 1509399347, 1481058254, 1105656868, 1683933241, - 1967344165, 1363678897, 1345493362, 1527348705 }; +const int32_t ds_cnn_s_layer_6_dw_conv2d_output_mult[64] = { + 1863379978, 2082217988, 1838996225, 2007721590, 1261692025, 1794730664, 1228594941, 1503821268, + 1340825862, 1383310660, 1780670648, 1995190486, 1640803378, 1435924753, 1401052407, 1155394962, + 2040158255, 1767218370, 1995480608, 1441123959, 1626294651, 1866348062, 1307557103, 2099811375, + 1722418647, 1330138099, 1449497128, 1461129602, 1620500135, 1092907931, 1497796348, 1091382538, + 1957567262, 1350868605, 1724272545, 1294135949, 1668877220, 1535382729, 1404731058, 1289863857, + 1935882917, 1098416945, 1648779856, 1172439779, 2131977275, 1375534122, 1603785582, 1545735830, + 1664503178, 1163324590, 1477285797, 1605626612, 1370365930, 2023371007, 2113512204, 1642697307, + 1509442129, 1481116328, 1105627097, 1683949143, 1967372673, 1363741410, 1345549743, 1527340814}; -const int32_t ds_cnn_s_layer_6_dw_conv2d_output_shift[64] - = { -7, -7, -7, -7, -7, -7, -6, -7, -7, -7, -7, -7, -6, -7, -7, -6, - -7, -7, -7, -7, -6, -8, -7, -7, -7, -7, -6, -7, -7, -6, -7, -6, - -7, -7, -7, -6, -7, -7, -7, -7, -7, -6, -7, -6, -7, -7, -7, -7, - -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -6, -7, -7, -7, -7, -7 }; +const int32_t ds_cnn_s_layer_6_dw_conv2d_output_shift[64] = { + -7, -7, -7, -7, -7, -7, -6, -7, -7, -7, -7, -7, -6, -7, -7, -6, -7, -7, -7, -7, -6, -8, + -7, -7, -7, -7, -6, -7, -7, -6, -7, -6, -7, -7, -7, -6, -7, -7, -7, -7, -7, -6, -7, -6, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -6, -7, -7, -7, -7, -7}; const int8_t ds_cnn_s_layer_6_dw_conv2d_weights[576] = { 118, -28, -16, 49, -127, -38, 127, -127, -116, 53, 89, -74, @@ -1304,24 +1281,20 @@ const int32_t ds_cnn_s_layer_7_conv2d_bias[64] 1107, 447, 601, 108, -1072, 390, 584, -509, 425, 2166, 1638, 2592, 34, -1854, 2495, 1166, 131, 2078, 4235, 2042 }; -const int32_t ds_cnn_s_layer_7_conv2d_output_mult[64] - = { 1768151177, 1563686915, 1973196303, 1344120178, 2006886438, 1411790879, - 1827399344, 1756533889, 2026635826, 1335407213, 1085635529, 1721682026, - 2138742652, 2115508077, 2040576572, 1977262354, 1330179433, 1379552906, - 2058583367, 1493983189, 1963902473, 2053355588, 1610156065, 1273835588, - 1318562146, 1954027779, 1281967690, 1841920953, 1493402324, 1550907898, - 1300555350, 1713549925, 1814620327, 1726328941, 1740269686, 1815782056, - 1489917138, 1854699970, 1919175916, 1460873919, 1619449895, 1336568941, - 2020246318, 1110903129, 1844825275, 1289809359, 2049870402, 1719939433, - 1228818599, 1848310461, 1687411028, 1318562146, 1845406140, 1869221579, - 1135589866, 1876772816, 1354575737, 1771055499, 1462035648, 1180025991, - 1960998151, 1157662712, 1922661102, 1429507242 }; +const int32_t ds_cnn_s_layer_7_conv2d_output_mult[64] = { + 1768399963, 1563927652, 1973467208, 1344100254, 2006986652, 1411671998, 1827646282, 1756372666, + 2026638951, 1335306211, 1085767881, 1721842010, 2138879304, 2115248290, 2040813773, 1977414005, + 1329891622, 1379780746, 2058454873, 1494221232, 1964151263, 2053524183, 1609937195, 1274001629, + 1318831988, 1953850207, 1282115264, 1841666521, 1493365549, 1551105667, 1300463550, 1713833865, + 1814371908, 1726250933, 1740160002, 1816009431, 1489904410, 1854849065, 1919301429, 1460875846, + 1619439506, 1336695833, 2020029624, 1111047440, 1844706784, 1289762851, 2049667052, 1720043819, + 1228861699, 1848505896, 1687627823, 1318418685, 1845195823, 1869097053, 1135447581, 1877048396, + 1354703578, 1771225190, 1462253702, 1179943755, 1961207428, 1157691002, 1922510611, 1429318914}; -const int32_t ds_cnn_s_layer_7_conv2d_output_shift[64] - = { -8, -8, -8, -8, -8, -7, -8, -8, -8, -8, -7, -8, -8, -8, -8, -8, - -8, -8, -9, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -7, -8, - -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -7, -8, -7, -8, -8, - -7, -8, -8, -8, -8, -8, -7, -8, -7, -8, -8, -7, -8, -7, -8, -8 }; +const int32_t ds_cnn_s_layer_7_conv2d_output_shift[64] = { + -8, -8, -8, -8, -8, -7, -8, -8, -8, -8, -7, -8, -8, -8, -8, -8, -8, -8, -9, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -7, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -7, + -8, -7, -8, -8, -7, -8, -8, -8, -8, -8, -7, -8, -7, -8, -8, -7, -8, -7, -8, -8}; const int8_t ds_cnn_s_layer_7_conv2d_weights[4096] = { 4, 40, 49, 22, 39, -12, 26, 27, 8, -12, -127, 16, @@ -1676,24 +1649,20 @@ const int32_t ds_cnn_s_layer_8_dw_conv2d_bias[64] 2412, -1450, -2069, -1399, 2942, -2418, 3488, 2653, 3221, 3420, 2397, 3330, 91, -2312 }; -const int32_t ds_cnn_s_layer_8_dw_conv2d_output_mult[64] - = { 1680007142, 1116297671, 1861886277, 1970782064, 1889689456, 1224266686, - 1642241156, 1260642513, 1213145414, 1302578975, 2053264831, 2104700714, - 1560685162, 1745112921, 1300725430, 1542149708, 2032412446, 1390622378, - 1088726184, 1425376353, 2012486834, 1517590233, 1821571666, 1422480189, - 1303969134, 1190091944, 1316480565, 1522455789, 1699701061, 1096140365, - 1668190790, 2044923877, 1808596849, 1854472095, 2068324887, 1551417435, - 1241180287, 1632510043, 1978659632, 1830839392, 1405682434, 1315322100, - 1874861094, 1449009056, 1117224443, 1858642572, 1946685975, 1458971862, - 1660776609, 1878568184, 1369074914, 1824120291, 1116529364, 1824351984, - 1606792102, 1729821172, 1230290708, 1431863762, 2109797963, 1893396547, - 1132979578, 1475422077, 2116748758, 1280568125 }; +const int32_t ds_cnn_s_layer_8_dw_conv2d_output_mult[64] = { + 1680096159, 1116369934, 1862013092, 1970873997, 1889552799, 1224175885, 1642233593, 1260592718, + 1213040287, 1302549406, 2053411121, 2104719761, 1560709992, 1745130201, 1300813663, 1541967356, + 2032358441, 1390585927, 1088714460, 1425265506, 2012327699, 1517634695, 1821538388, 1422447189, + 1303868044, 1190049461, 1316422942, 1522526992, 1699692317, 1096189009, 1668304478, 2044943872, + 1808548907, 1854599070, 2068439626, 1551533147, 1241206407, 1632539412, 1978588170, 1830663122, + 1405753718, 1315215216, 1874635206, 1449119457, 1117118263, 1858686611, 1946548565, 1458901029, + 1660961772, 1878582273, 1369091111, 1824146534, 1116568560, 1824265213, 1606824674, 1729984743, + 1230134788, 1431793747, 2109843051, 1893203814, 1133015286, 1475429535, 2116718699, 1280542002}; -const int32_t ds_cnn_s_layer_8_dw_conv2d_output_shift[64] - = { -6, -6, -7, -6, -7, -7, -7, -5, -6, -6, -7, -7, -7, -6, -6, -7, - -6, -6, -4, -6, -7, -6, -6, -5, -6, -5, -5, -6, -7, -6, -6, -6, - -7, -7, -6, -6, -5, -6, -7, -7, -6, -6, -7, -7, -6, -7, -7, -6, - -7, -7, -6, -6, -6, -6, -6, -7, -7, -7, -7, -7, -6, -7, -6, -6 }; +const int32_t ds_cnn_s_layer_8_dw_conv2d_output_shift[64] = { + -6, -6, -7, -6, -7, -7, -7, -5, -6, -6, -7, -7, -7, -6, -6, -7, -6, -6, -4, -6, -7, -6, + -6, -5, -6, -5, -5, -6, -7, -6, -6, -6, -7, -7, -6, -6, -5, -6, -7, -7, -6, -6, -7, -7, + -6, -7, -7, -6, -7, -7, -6, -6, -6, -6, -6, -7, -7, -7, -7, -7, -6, -7, -6, -6}; const int8_t ds_cnn_s_layer_8_dw_conv2d_weights[576] = { 77, -108, -114, 123, -79, -127, 15, 127, -120, -99, -101, -99, @@ -1754,24 +1723,20 @@ const int32_t ds_cnn_s_layer_9_conv2d_bias[64] -1829, 1153, 1228, -1051, -22, 3651, -1150, 1518, 249, 160, 2986, -1710, -505, 5189 }; -const int32_t ds_cnn_s_layer_9_conv2d_output_mult[64] - = { 1767195096, 1312973928, 1215738252, 1504912088, 1217881723, 1554406801, - 1111487576, 1118112853, 1468473067, 1094242371, 1857415774, 1382734193, - 1794865369, 1575256936, 1494194729, 1533361805, 1868327994, 1215153668, - 1195277839, 1582856518, 1298164487, 1352530727, 1191770339, 1448597237, - 1708736773, 1741278573, 1731535519, 1221584084, 1621633872, 1241654775, - 1233860332, 1306738374, 1160787428, 1283355045, 1703085802, 1523423890, - 1990505889, 1418198909, 1220414917, 1301087403, 1269909631, 1431449462, - 1575256936, 1360130309, 1831499251, 1371627112, 1459704318, 1472565149, - 1916068958, 1489323202, 1551483885, 1544274025, 1353310171, 1241265052, - 1152603263, 1374550028, 1546222636, 1549730135, 1876707020, 1699578303, - 1350387255, 1842606332, 1420342381, 1264063798 }; +const int32_t ds_cnn_s_layer_9_conv2d_output_mult[64] = { + 1767173935, 1312932477, 1215657359, 1504832490, 1217843177, 1554500166, 1111471994, 1118067377, + 1468528983, 1094227451, 1857457502, 1382650626, 1794937063, 1575209951, 1494287409, 1533287324, + 1868261281, 1215204389, 1195370057, 1582818800, 1298081999, 1352465757, 1191693484, 1448538489, + 1708810262, 1741339016, 1731476748, 1221557226, 1621679522, 1241653431, 1233799585, 1306698327, + 1160722451, 1283439586, 1703153395, 1523481132, 1990535881, 1418107264, 1220372262, 1301105522, + 1269953101, 1431419076, 1575319201, 1360165074, 1831475041, 1371600308, 1459745604, 1472623864, + 1915987954, 1489360358, 1551441165, 1544298896, 1353383857, 1241192113, 1152510457, 1374638621, + 1546235453, 1549643983, 1876649944, 1699493881, 1350311244, 1842633611, 1420300068, 1263966760}; -const int32_t ds_cnn_s_layer_9_conv2d_output_shift[64] - = { -7, -7, -7, -7, -7, -7, -7, -7, -7, -6, -7, -7, -7, -7, -7, -7, - -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, - -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, - -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -8, -7, -7 }; +const int32_t ds_cnn_s_layer_9_conv2d_output_shift[64] = { + -7, -7, -7, -7, -7, -7, -7, -7, -7, -6, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -8, -7, -7}; const int8_t ds_cnn_s_layer_9_conv2d_weights[4096] = { -9, -46, -30, 8, 5, 65, -127, -5, 41, -14, -14, -38, diff --git a/tests/data/kws_expected.c b/tests/data/kws_expected.c index 410698a..0e88a79 100644 --- a/tests/data/kws_expected.c +++ b/tests/data/kws_expected.c @@ -1,5 +1,6 @@ /** - * Copyright (C) 2022 EEMBC + * Copyright (C) 2022-2023 EEMBC + * Copyright (C) 2023 Arm Limited * * All EEMBC Benchmark Software are products of EEMBC and are provided under the * terms of the EEMBC Benchmark License Agreements. The EEMBC Benchmark Software @@ -70,14 +71,14 @@ const int8_t p_expected[73][12] = { { }, { -128, - -14, + 0, -128, -128, -128, -128, -128, -128, - 14, + 0, -128, -128, -128, @@ -98,14 +99,14 @@ const int8_t p_expected[73][12] = { { }, { -128, - -97, + -102, -128, -128, -128, -128, -128, -128, - 97, + 102, -128, -128, -128, @@ -126,14 +127,14 @@ const int8_t p_expected[73][12] = { { }, { -128, - -123, + -122, -128, -128, -128, -128, -128, -128, - 123, + 122, -128, -128, -128, @@ -483,8 +484,8 @@ const int8_t p_expected[73][12] = { { -127, -128, -128, - 110, - -111, + 106, + -107, -128, -128, }, @@ -497,8 +498,8 @@ const int8_t p_expected[73][12] = { { -127, -128, -128, - 105, - -107, + 95, + -97, -128, -128, }, @@ -512,21 +513,21 @@ const int8_t p_expected[73][12] = { { -128, -128, 53, - -67, + -68, -128, - -121, + -120, }, { -128, -128, - -119, + -120, -128, -128, - -126, + -125, -128, -128, - 70, - -85, + 52, + -68, -128, -124, }, @@ -536,53 +537,53 @@ const int8_t p_expected[73][12] = { { -117, -127, -128, - -114, + -115, -128, -127, - -1, - -62, + -9, + -51, -128, - -94, + -96, }, { -128, -128, - -109, + -108, -128, -128, -118, -128, -128, - 39, - -83, + 16, + -68, -128, - -113, + -108, }, { -128, -124, - -112, + -113, -123, -128, -123, -128, -125, - -38, - -16, + -40, + -18, -127, - -109, + -104, }, { -128, -127, - -119, + -117, -126, -128, - -116, + -114, -128, -128, - 74, - -100, + 64, + -95, -128, -126, }, @@ -592,7 +593,7 @@ const int8_t p_expected[73][12] = { { -124, -126, -128, - -126, + -127, -128, -128, 19, @@ -602,15 +603,15 @@ const int8_t p_expected[73][12] = { { }, { -128, - -122, - -122, - -122, + -123, + -123, + -123, -127, - -102, + -97, -128, -128, - 21, - -66, + 17, + -68, -128, -126, }, @@ -623,14 +624,14 @@ const int8_t p_expected[73][12] = { { -119, -128, -124, - 62, - -107, - -124, - -127, + 59, + -102, + -125, + -126, }, { -128, - -117, + -118, -124, -112, -128, @@ -638,29 +639,29 @@ const int8_t p_expected[73][12] = { { -128, -127, -34, - -126, + -125, -128, - -117, + -118, }, { -128, -119, -127, - -84, + -77, -128, - -113, + -117, -128, - -43, - -73, + -29, + -87, -126, -127, - -84, + -87, }, { -127, -118, -120, - -123, + -122, -127, -82, -128, @@ -671,116 +672,116 @@ const int8_t p_expected[73][12] = { { 43, }, { - -91, - -112, - -98, - -70, - -125, - -112, - -120, - -104, - -126, + -84, + -113, + -105, + -74, + -124, + -113, + -122, + -105, -126, -125, - -70, + -125, + -61, }, { - 87, + 78, -120, - -122, -120, + -116, -125, -126, -124, -125, + -126, + -124, -127, -125, - -127, - -126, }, { - 37, - -116, - -118, - -113, + 23, + -114, + -117, + -114, -125, - -127, - -113, - -105, - -127, -126, + -111, + -95, -127, - -120, + -126, + -126, + -119, }, { - -57, - -82, - -113, - -113, - -122, + -48, + -87, + -114, + -114, + -121, -124, - -99, - -82, + -95, + -87, -125, -123, - -125, - -116, + -124, + -117, }, { -120, - -105, - -123, - -113, + -108, + -124, + -118, -125, -127, - -74, - 3, + -79, + 17, -128, - -126, + -127, -125, - -116, + -118, }, { - -125, - -89, - -123, - -97, - -125, + -126, + -86, + -122, + -95, -124, - -68, - -35, + -124, + -64, + -48, -127, -126, - -120, - -120, + -119, + -119, }, { + -125, + -105, + -123, + -105, -126, - -102, - -122, - -102, - -126, - -126, - -67, - -10, + -125, + -74, + 3, -128, -127, - -122, - -121, + -123, + -120, }, { -127, - -94, + -90, -126, - -106, + -104, -127, - -121, - -85, - 0, + -120, + -81, + -15, -128, -127, - -126, - -114, + -124, + -112, }, { -128, @@ -790,7 +791,7 @@ const int8_t p_expected[73][12] = { { -127, -127, -80, - 49, + 50, -128, -128, -126, @@ -817,8 +818,8 @@ const int8_t p_expected[73][12] = { { -127, -128, -128, - -84, - 77, + -91, + 86, -128, -128, -128, @@ -845,8 +846,8 @@ const int8_t p_expected[73][12] = { { -127, -128, -128, - -103, - 96, + -107, + 102, -128, -128, -128, @@ -859,8 +860,8 @@ const int8_t p_expected[73][12] = { { -127, -128, -128, - -114, - 110, + -111, + 107, -128, -128, -128, @@ -868,13 +869,13 @@ const int8_t p_expected[73][12] = { { }, { -128, - -127, + -126, -128, -128, -128, -128, -122, - 121, + 120, -128, -128, -128, @@ -901,8 +902,8 @@ const int8_t p_expected[73][12] = { { -128, -128, -128, - -126, - 125, + -125, + 124, -128, -128, -128, @@ -910,13 +911,13 @@ const int8_t p_expected[73][12] = { { }, { -128, - -127, + -126, -128, -128, -128, -128, -125, - 124, + 123, -128, -128, -128, @@ -929,7 +930,7 @@ const int8_t p_expected[73][12] = { { -128, -128, -128, - -126, + -127, 126, -128, -128, @@ -943,8 +944,8 @@ const int8_t p_expected[73][12] = { { -128, -128, -128, - -127, - 126, + -126, + 125, -128, -128, -128, @@ -958,7 +959,7 @@ const int8_t p_expected[73][12] = { { -128, -128, -127, - 126, + 127, -128, -128, -128, @@ -972,7 +973,7 @@ const int8_t p_expected[73][12] = { { -128, -128, -127, - 126, + 125, -128, -128, -128, @@ -980,13 +981,13 @@ const int8_t p_expected[73][12] = { { }, { -128, - -128, + -127, -128, -128, -128, -128, -127, - 126, + 127, -128, -128, -128, @@ -1028,7 +1029,7 @@ const int8_t p_expected[73][12] = { { -128, -128, -127, - 126, + 125, -128, -128, -128,