generate_test_data.py 167 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050
  1. #!/usr/bin/env python3
  2. #
  3. # SPDX-FileCopyrightText: Copyright 2010-2024 Arm Limited and/or its affiliates <open-source-office@arm.com>
  4. #
  5. # SPDX-License-Identifier: Apache-2.0
  6. #
  7. # Licensed under the Apache License, Version 2.0 (the License); you may
  8. # not use this file except in compliance with the License.
  9. # You may obtain a copy of the License at
  10. #
  11. # www.apache.org/licenses/LICENSE-2.0
  12. #
  13. # Unless required by applicable law or agreed to in writing, software
  14. # distributed under the License is distributed on an AS IS BASIS, WITHOUT
  15. # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16. # See the License for the specific language governing permissions and
  17. # limitations under the License.
  18. #
  19. import os
  20. os.environ["TF_USE_LEGACY_KERAS"]="1"
  21. import sys
  22. import argparse
  23. from packaging import version
  24. from test_settings import TestSettings
  25. from conv_settings import ConvSettings
  26. from pooling_settings import PoolingSettings
  27. from softmax_settings import SoftmaxSettings
  28. from svdf_settings import SVDFSettings
  29. from add_mul_settings import AddMulSettings
  30. from lstm_settings import LSTMSettings
  31. from fully_connected_settings import FullyConnectedSettings
  32. import tensorflow as tf
  33. def parse_args() -> argparse.Namespace:
  34. parser = argparse.ArgumentParser(description="Generate input and refererence output data for unittests."
  35. " It can regenerate all data, load all stored data or a combination of it.")
  36. parser.add_argument('--dataset', type=str, default=None, help="Name of generated test set.")
  37. parser.add_argument('--regenerate-weights', action='store_true', help="Regenerate and store new weights.")
  38. parser.add_argument('--regenerate-input', action='store_true', help="Regenerate and store new input.")
  39. parser.add_argument('--regenerate-biases', action='store_true', help="Regenerate and store new biases.")
  40. parser.add_argument('-a', '--regenerate-all', action='store_true', help="Regenerate and store all data.")
  41. parser.add_argument('-t',
  42. '--testtype',
  43. type=str,
  44. default=None,
  45. choices=[
  46. 'conv', 'depthwise_conv', 'avgpool', 'maxpool', 'fully_connected', 'softmax', 'svdf', 'add',
  47. 'mul', 'lstm', 'transpose_conv'
  48. ],
  49. help='Type of test. There are the operators that have unit tests.')
  50. parser.add_argument('--run-all-testsets',
  51. action='store_true',
  52. help="Run the script for all existing test "
  53. "sets. Regenerate all, partially all or no input data (output may still change, depending on"
  54. " changes in script) depending on regenerate flags. If used together with the -t flag, only"
  55. " tests of that type will be run.")
  56. parser.add_argument('--schema-file', type=str, help="Path to schema file. This may be needed for some tests.")
  57. parser.add_argument('--interpreter', type=str, default='tensorflow', choices=['tensorflow', 'tflite_runtime',
  58. 'tflite_micro'],
  59. help="Use interpreter from tensorflow or tflite_runtime. See README for more info.")
  60. return parser.parse_args()
  61. def load_testdata_sets(regenerate_input, regenerate_weights, regenerate_biases, schema_file, interpreter) -> dict:
  62. """
  63. Add all new testdata sets here
  64. """
  65. testdata_sets = {}
  66. type_of_test = 'conv'
  67. dataset = 'basic'
  68. testdata_sets[dataset] = ConvSettings(dataset,
  69. type_of_test,
  70. regenerate_weights,
  71. regenerate_input,
  72. regenerate_biases,
  73. schema_file,
  74. in_ch=1,
  75. out_ch=1,
  76. x_in=5,
  77. y_in=8,
  78. w_x=2,
  79. w_y=4,
  80. stride_x=1,
  81. stride_y=1,
  82. pad=False,
  83. interpreter=interpreter)
  84. dataset = 'stride2pad1'
  85. testdata_sets[dataset] = ConvSettings(dataset,
  86. type_of_test,
  87. regenerate_weights,
  88. regenerate_input,
  89. regenerate_biases,
  90. schema_file,
  91. in_ch=1,
  92. out_ch=1,
  93. x_in=7,
  94. y_in=7,
  95. w_x=3,
  96. w_y=3,
  97. stride_x=2,
  98. stride_y=2,
  99. pad=True,
  100. interpreter=interpreter)
  101. dataset = 'kernel1x1'
  102. testdata_sets[dataset] = ConvSettings(dataset,
  103. type_of_test,
  104. regenerate_weights,
  105. regenerate_input,
  106. regenerate_biases,
  107. schema_file,
  108. in_ch=19,
  109. out_ch=7,
  110. x_in=7,
  111. y_in=5,
  112. w_x=1,
  113. w_y=1,
  114. stride_x=1,
  115. stride_y=1,
  116. pad=False,
  117. bias_min=TestSettings.INT8_MIN,
  118. bias_max=TestSettings.INT8_MAX,
  119. out_activation_min=-126,
  120. out_activation_max=127,
  121. batches=2,
  122. interpreter=interpreter)
  123. dataset = 'kernel1x1_stride_x'
  124. testdata_sets[dataset] = ConvSettings(dataset,
  125. type_of_test,
  126. regenerate_weights,
  127. regenerate_input,
  128. regenerate_biases,
  129. schema_file,
  130. in_ch=9,
  131. out_ch=5,
  132. x_in=7,
  133. y_in=4,
  134. w_x=1,
  135. w_y=1,
  136. stride_x=3,
  137. stride_y=1,
  138. pad=False,
  139. out_activation_min=-126,
  140. out_activation_max=127,
  141. batches=2,
  142. interpreter=interpreter)
  143. dataset = 'kernel1x1_stride_x_y'
  144. testdata_sets[dataset] = ConvSettings(dataset,
  145. type_of_test,
  146. regenerate_weights,
  147. regenerate_input,
  148. regenerate_biases,
  149. schema_file,
  150. in_ch=23,
  151. out_ch=15,
  152. randmin=0,
  153. x_in=7,
  154. y_in=6,
  155. w_x=1,
  156. w_y=1,
  157. stride_x=2,
  158. stride_y=2,
  159. pad=False,
  160. out_activation_min=-6,
  161. out_activation_max=127,
  162. batches=3,
  163. interpreter=interpreter)
  164. dataset = 'kernel1x1_stride_x_y_1'
  165. testdata_sets[dataset] = ConvSettings(dataset,
  166. type_of_test,
  167. regenerate_weights,
  168. regenerate_input,
  169. regenerate_biases,
  170. schema_file,
  171. in_ch=5,
  172. out_ch=5,
  173. x_in=4,
  174. y_in=4,
  175. w_x=1,
  176. w_y=1,
  177. stride_x=2,
  178. stride_y=2,
  179. pad=False,
  180. out_activation_min=-126,
  181. out_activation_max=127,
  182. batches=2,
  183. interpreter=interpreter)
  184. dataset = 'kernel1x1_stride_x_y_2'
  185. testdata_sets[dataset] = ConvSettings(dataset,
  186. type_of_test,
  187. regenerate_weights,
  188. regenerate_input,
  189. regenerate_biases,
  190. schema_file,
  191. in_ch=5,
  192. out_ch=5,
  193. x_in=4,
  194. y_in=4,
  195. w_x=1,
  196. w_y=1,
  197. stride_x=3,
  198. stride_y=3,
  199. pad=False,
  200. out_activation_min=-126,
  201. out_activation_max=127,
  202. batches=2,
  203. interpreter=interpreter)
  204. dataset = 'conv_3'
  205. testdata_sets[dataset] = ConvSettings(dataset,
  206. type_of_test,
  207. regenerate_weights,
  208. regenerate_input,
  209. regenerate_biases,
  210. schema_file,
  211. in_ch=3,
  212. out_ch=1,
  213. x_in=10,
  214. y_in=49,
  215. w_x=4,
  216. w_y=10,
  217. stride_x=1,
  218. stride_y=2,
  219. pad=True,
  220. out_activation_min=-127,
  221. out_activation_max=127,
  222. interpreter=interpreter)
  223. dataset = 'conv_1_x_n_1' # left and right pad, no non-padded elements
  224. testdata_sets[dataset] = ConvSettings(dataset,
  225. type_of_test,
  226. regenerate_weights,
  227. regenerate_input,
  228. regenerate_biases,
  229. schema_file,
  230. in_ch=4,
  231. out_ch=3,
  232. x_in=2,
  233. y_in=1,
  234. w_x=3,
  235. w_y=1,
  236. stride_x=1,
  237. stride_y=1,
  238. pad=True,
  239. out_activation_min=-127,
  240. out_activation_max=127,
  241. batches=2,
  242. interpreter=interpreter)
  243. dataset = 'conv_1_x_n_2' # no pad
  244. testdata_sets[dataset] = ConvSettings(dataset,
  245. type_of_test,
  246. regenerate_weights,
  247. regenerate_input,
  248. regenerate_biases,
  249. schema_file,
  250. in_ch=4,
  251. out_ch=3,
  252. x_in=296,
  253. y_in=1,
  254. w_x=48,
  255. w_y=1,
  256. stride_x=2,
  257. stride_y=1,
  258. pad=False,
  259. out_activation_min=-111,
  260. out_activation_max=127,
  261. interpreter=interpreter)
  262. dataset = 'conv_1_x_n_3'
  263. testdata_sets[dataset] = ConvSettings(dataset,
  264. type_of_test,
  265. regenerate_weights,
  266. regenerate_input,
  267. regenerate_biases,
  268. schema_file,
  269. in_ch=4,
  270. out_ch=1,
  271. x_in=296,
  272. y_in=1,
  273. w_x=48,
  274. w_y=1,
  275. stride_x=2,
  276. stride_y=1,
  277. pad=True,
  278. out_activation_min=-111,
  279. out_activation_max=127,
  280. interpreter=interpreter)
  281. dataset = 'conv_1_x_n_4' # 0 left pad, 1 right pad
  282. testdata_sets[dataset] = ConvSettings(dataset,
  283. type_of_test,
  284. regenerate_weights,
  285. regenerate_input,
  286. regenerate_biases,
  287. schema_file,
  288. in_ch=4,
  289. out_ch=4,
  290. x_in=16,
  291. y_in=1,
  292. w_x=3,
  293. w_y=1,
  294. stride_x=2,
  295. stride_y=1,
  296. pad=True,
  297. out_activation_min=-88,
  298. out_activation_max=127,
  299. interpreter=interpreter)
  300. dataset = 'conv_1_x_n_5'
  301. testdata_sets[dataset] = ConvSettings(dataset,
  302. type_of_test,
  303. regenerate_weights,
  304. regenerate_input,
  305. regenerate_biases,
  306. schema_file,
  307. in_ch=4,
  308. out_ch=1,
  309. x_in=17,
  310. y_in=1,
  311. w_x=3,
  312. w_y=1,
  313. stride_x=3,
  314. stride_y=1,
  315. pad=True,
  316. out_activation_min=-88,
  317. out_activation_max=127,
  318. interpreter=interpreter)
  319. dataset = 'conv_1_x_n_6_generic' # right_pad_num + no_pad_num + left_pad_num != output_x
  320. testdata_sets[dataset] = ConvSettings(dataset,
  321. type_of_test,
  322. regenerate_weights,
  323. regenerate_input,
  324. regenerate_biases,
  325. schema_file,
  326. in_ch=1,
  327. out_ch=16,
  328. x_in=4,
  329. y_in=1,
  330. w_x=8,
  331. w_y=1,
  332. stride_x=4,
  333. stride_y=1,
  334. pad=True,
  335. out_activation_min=-125,
  336. out_activation_max=126,
  337. interpreter=interpreter)
  338. dataset = 'conv_2'
  339. testdata_sets[dataset] = ConvSettings(dataset,
  340. type_of_test,
  341. regenerate_weights,
  342. regenerate_input,
  343. regenerate_biases,
  344. schema_file,
  345. in_ch=2,
  346. out_ch=4,
  347. x_in=6,
  348. y_in=3,
  349. w_x=3,
  350. w_y=3,
  351. stride_x=1,
  352. stride_y=1,
  353. pad=True,
  354. out_activation_min=-101,
  355. out_activation_max=127,
  356. interpreter=interpreter)
  357. dataset = 'conv_4' # batches > 2
  358. testdata_sets[dataset] = ConvSettings(dataset,
  359. type_of_test,
  360. regenerate_weights,
  361. regenerate_input,
  362. regenerate_biases,
  363. schema_file,
  364. in_ch=3,
  365. out_ch=3,
  366. x_in=5,
  367. y_in=5,
  368. w_x=2,
  369. w_y=3,
  370. stride_x=2,
  371. stride_y=2,
  372. pad=False,
  373. out_activation_min=-109,
  374. out_activation_max=127,
  375. batches=3,
  376. interpreter=interpreter)
  377. dataset = 'conv_5'
  378. testdata_sets[dataset] = ConvSettings(dataset,
  379. type_of_test,
  380. regenerate_weights,
  381. regenerate_input,
  382. regenerate_biases,
  383. schema_file,
  384. in_ch=128,
  385. out_ch=1,
  386. x_in=128,
  387. y_in=1,
  388. w_x=3,
  389. w_y=3,
  390. stride_x=4,
  391. stride_y=4,
  392. pad=True,
  393. out_activation_min=-88,
  394. out_activation_max=127,
  395. interpreter=interpreter)
  396. dataset = 'conv_out_activation'
  397. testdata_sets[dataset] = ConvSettings(dataset,
  398. type_of_test,
  399. regenerate_weights,
  400. regenerate_input,
  401. regenerate_biases,
  402. schema_file,
  403. in_ch=4,
  404. out_ch=2,
  405. x_in=3,
  406. y_in=3,
  407. w_x=3,
  408. w_y=3,
  409. stride_x=1,
  410. stride_y=1,
  411. pad=True,
  412. out_activation_min=-61,
  413. out_activation_max=107,
  414. interpreter=interpreter)
  415. dataset = 'conv_dilation_golden'
  416. testdata_sets[dataset] = ConvSettings(dataset,
  417. type_of_test,
  418. regenerate_weights,
  419. regenerate_input,
  420. regenerate_biases,
  421. schema_file,
  422. in_ch=1,
  423. batches=2,
  424. out_ch=3,
  425. x_in=6,
  426. y_in=4,
  427. w_x=2,
  428. w_y=2,
  429. stride_x=1,
  430. stride_y=1,
  431. pad=True,
  432. out_activation_min=-128,
  433. out_activation_max=127,
  434. dilation_x=3,
  435. dilation_y=2,
  436. interpreter=interpreter)
  437. dataset = 'conv_2x2_dilation'
  438. testdata_sets[dataset] = ConvSettings(dataset,
  439. type_of_test,
  440. regenerate_weights,
  441. regenerate_input,
  442. regenerate_biases,
  443. schema_file,
  444. in_ch=2,
  445. out_ch=2,
  446. x_in=10,
  447. y_in=10,
  448. w_x=3,
  449. w_y=3,
  450. stride_x=1,
  451. stride_y=1,
  452. pad=False,
  453. out_activation_min=-61,
  454. out_activation_max=107,
  455. dilation_x=2,
  456. dilation_y=2,
  457. interpreter=interpreter)
  458. dataset = 'conv_2x3_dilation'
  459. testdata_sets[dataset] = ConvSettings(dataset,
  460. type_of_test,
  461. regenerate_weights,
  462. regenerate_input,
  463. regenerate_biases,
  464. schema_file,
  465. in_ch=2,
  466. out_ch=2,
  467. x_in=3,
  468. y_in=3,
  469. w_x=3,
  470. w_y=3,
  471. stride_x=1,
  472. stride_y=1,
  473. pad=True,
  474. out_activation_min=-61,
  475. out_activation_max=107,
  476. dilation_x=2,
  477. dilation_y=2,
  478. interpreter=interpreter)
  479. dataset = 'conv_3x2_dilation'
  480. testdata_sets[dataset] = ConvSettings(dataset,
  481. type_of_test,
  482. regenerate_weights,
  483. regenerate_input,
  484. regenerate_biases,
  485. schema_file,
  486. in_ch=2,
  487. out_ch=2,
  488. x_in=3,
  489. y_in=3,
  490. w_x=3,
  491. w_y=3,
  492. stride_x=1,
  493. stride_y=1,
  494. pad=True,
  495. out_activation_min=-61,
  496. out_activation_max=107,
  497. dilation_x=3,
  498. dilation_y=2,
  499. interpreter=interpreter)
  500. dataset = 'conv_2x2_dilation_5x5_input'
  501. testdata_sets[dataset] = ConvSettings(dataset,
  502. type_of_test,
  503. regenerate_weights,
  504. regenerate_input,
  505. regenerate_biases,
  506. schema_file,
  507. in_ch=2,
  508. out_ch=2,
  509. x_in=5,
  510. y_in=5,
  511. w_x=3,
  512. w_y=3,
  513. stride_x=1,
  514. stride_y=1,
  515. pad=True,
  516. out_activation_min=-61,
  517. out_activation_max=107,
  518. dilation_x=2,
  519. dilation_y=2,
  520. interpreter=interpreter)
  521. dataset = 'conv_3x3_dilation_5x5_input'
  522. testdata_sets[dataset] = ConvSettings(dataset,
  523. type_of_test,
  524. regenerate_weights,
  525. regenerate_input,
  526. regenerate_biases,
  527. schema_file,
  528. in_ch=2,
  529. out_ch=2,
  530. x_in=9,
  531. y_in=11,
  532. w_x=3,
  533. w_y=3,
  534. stride_x=1,
  535. stride_y=1,
  536. pad=True,
  537. out_activation_min=-61,
  538. out_activation_max=107,
  539. dilation_x=2,
  540. dilation_y=2,
  541. interpreter=interpreter)
  542. dataset = 'int16xint8'
  543. testdata_sets[dataset] = ConvSettings(dataset,
  544. type_of_test,
  545. regenerate_weights,
  546. regenerate_input,
  547. regenerate_biases,
  548. schema_file,
  549. in_ch=3,
  550. out_ch=4,
  551. x_in=7,
  552. y_in=8,
  553. w_x=2,
  554. w_y=4,
  555. stride_x=2,
  556. stride_y=3,
  557. pad=True,
  558. randmin=TestSettings.INT16_MIN,
  559. randmax=TestSettings.INT16_MAX,
  560. out_activation_min=-13335,
  561. out_activation_max=32767,
  562. int16xint8=True,
  563. interpreter=interpreter)
  564. dataset = 'requantize_s64'
  565. testdata_sets[dataset] = ConvSettings(dataset,
  566. type_of_test,
  567. regenerate_weights,
  568. regenerate_input,
  569. regenerate_biases,
  570. schema_file,
  571. in_ch=2,
  572. out_ch=2,
  573. x_in=3,
  574. y_in=2,
  575. w_x=2,
  576. w_y=2,
  577. stride_x=1,
  578. stride_y=1,
  579. pad=False,
  580. out_activation_min=TestSettings.INT16_MIN,
  581. out_activation_max=TestSettings.INT16_MAX,
  582. int16xint8=True,
  583. bias_min=-0x300,
  584. bias_max=0x9fff,
  585. interpreter=interpreter)
  586. dataset = 'int16xint8_dilation_1'
  587. testdata_sets[dataset] = ConvSettings(dataset,
  588. type_of_test,
  589. regenerate_weights,
  590. regenerate_input,
  591. regenerate_biases,
  592. schema_file,
  593. in_ch=2,
  594. out_ch=2,
  595. x_in=32,
  596. y_in=32,
  597. w_x=2,
  598. w_y=2,
  599. stride_x=1,
  600. stride_y=1,
  601. pad=False,
  602. out_activation_min=TestSettings.INT16_MIN,
  603. out_activation_max=TestSettings.INT16_MAX,
  604. int16xint8=True,
  605. bias_min=-0x300,
  606. dilation_x=2,
  607. dilation_y=2,
  608. interpreter=interpreter)
  609. dataset = 'int16xint8_dilation_2'
  610. testdata_sets[dataset] = ConvSettings(dataset,
  611. type_of_test,
  612. regenerate_weights,
  613. regenerate_input,
  614. regenerate_biases,
  615. schema_file,
  616. in_ch=3,
  617. out_ch=4,
  618. x_in=7,
  619. y_in=8,
  620. w_x=2,
  621. w_y=4,
  622. stride_x=1,
  623. stride_y=1,
  624. pad=True,
  625. randmin=TestSettings.INT16_MIN,
  626. randmax=TestSettings.INT16_MAX,
  627. out_activation_min=-13335,
  628. out_activation_max=32767,
  629. int16xint8=True,
  630. dilation_x=2,
  631. dilation_y=2,
  632. interpreter=interpreter)
  633. dataset = 'int16xint8_dilation_3'
  634. testdata_sets[dataset] = ConvSettings(dataset,
  635. type_of_test,
  636. regenerate_weights,
  637. regenerate_input,
  638. regenerate_biases,
  639. schema_file,
  640. in_ch=3,
  641. out_ch=4,
  642. x_in=7,
  643. y_in=8,
  644. w_x=2,
  645. w_y=4,
  646. stride_x=1,
  647. stride_y=1,
  648. pad=True,
  649. randmin=TestSettings.INT16_MIN,
  650. randmax=TestSettings.INT16_MAX,
  651. out_activation_min=-13335,
  652. out_activation_max=32767,
  653. int16xint8=True,
  654. dilation_x=2,
  655. interpreter=interpreter)
  656. dataset = 'grouped_conv_1'
  657. testdata_sets[dataset] = ConvSettings(dataset,
  658. type_of_test,
  659. regenerate_weights,
  660. regenerate_input,
  661. regenerate_biases,
  662. schema_file,
  663. in_ch=2,
  664. out_ch=6,
  665. groups=2,
  666. x_in=5,
  667. y_in=5,
  668. w_x=2,
  669. w_y=2,
  670. generate_bias=False,
  671. stride_x=1,
  672. stride_y=1,
  673. pad=False,
  674. batches=2,
  675. interpreter=interpreter)
  676. dataset = 'grouped_conv_2'
  677. testdata_sets[dataset] = ConvSettings(dataset,
  678. type_of_test,
  679. regenerate_weights,
  680. regenerate_input,
  681. regenerate_biases,
  682. schema_file,
  683. in_ch=4,
  684. out_ch=2,
  685. groups=2,
  686. x_in=7,
  687. y_in=3,
  688. w_x=1,
  689. w_y=2,
  690. generate_bias=True,
  691. stride_x=1,
  692. stride_y=1,
  693. pad=False,
  694. interpreter=interpreter)
  695. dataset = 'grouped_conv_3'
  696. testdata_sets[dataset] = ConvSettings(dataset,
  697. type_of_test,
  698. regenerate_weights,
  699. regenerate_input,
  700. regenerate_biases,
  701. schema_file,
  702. in_ch=2,
  703. out_ch=4,
  704. groups=2,
  705. x_in=3,
  706. y_in=2,
  707. w_x=3,
  708. w_y=2,
  709. generate_bias=True,
  710. stride_x=2,
  711. stride_y=2,
  712. pad=True,
  713. batches=2,
  714. interpreter=interpreter)
  715. dataset = 'grouped_conv_4'
  716. testdata_sets[dataset] = ConvSettings(dataset,
  717. type_of_test,
  718. regenerate_weights,
  719. regenerate_input,
  720. regenerate_biases,
  721. schema_file,
  722. in_ch=3,
  723. out_ch=6,
  724. groups=3,
  725. x_in=9,
  726. y_in=9,
  727. w_x=2,
  728. w_y=2,
  729. generate_bias=True,
  730. stride_x=1,
  731. stride_y=1,
  732. dilation_x=3,
  733. dilation_y=3,
  734. pad=True,
  735. interpreter=interpreter)
  736. dataset = 'basic_int4'
  737. testdata_sets[dataset] = ConvSettings(dataset,
  738. type_of_test,
  739. regenerate_weights,
  740. regenerate_input,
  741. regenerate_biases,
  742. schema_file,
  743. in_ch=1,
  744. out_ch=1,
  745. x_in=5,
  746. y_in=8,
  747. w_x=2,
  748. w_y=4,
  749. stride_x=1,
  750. stride_y=1,
  751. pad=False,
  752. interpreter=interpreter,
  753. int4_weights=True)
  754. dataset = 'basic_2_int4'
  755. testdata_sets[dataset] = ConvSettings(dataset,
  756. type_of_test,
  757. regenerate_weights,
  758. regenerate_input,
  759. regenerate_biases,
  760. schema_file,
  761. in_ch=5,
  762. out_ch=15,
  763. x_in=15,
  764. y_in=15,
  765. w_x=5,
  766. w_y=5,
  767. stride_x=1,
  768. stride_y=1,
  769. pad=False,
  770. interpreter=interpreter,
  771. int4_weights=True)
  772. dataset = 'stride2pad1_int4'
  773. testdata_sets[dataset] = ConvSettings(dataset,
  774. type_of_test,
  775. regenerate_weights,
  776. regenerate_input,
  777. regenerate_biases,
  778. schema_file,
  779. in_ch=1,
  780. out_ch=1,
  781. x_in=7,
  782. y_in=7,
  783. w_x=3,
  784. w_y=3,
  785. stride_x=2,
  786. stride_y=2,
  787. pad=True,
  788. interpreter=interpreter,
  789. int4_weights=True)
  790. dataset = 'kernel1x1_int4'
  791. testdata_sets[dataset] = ConvSettings(dataset,
  792. type_of_test,
  793. regenerate_weights,
  794. regenerate_input,
  795. regenerate_biases,
  796. schema_file,
  797. in_ch=19,
  798. out_ch=7,
  799. x_in=7,
  800. y_in=5,
  801. w_x=1,
  802. w_y=1,
  803. stride_x=1,
  804. stride_y=1,
  805. pad=False,
  806. bias_min=TestSettings.INT8_MIN,
  807. bias_max=TestSettings.INT8_MAX,
  808. out_activation_min=-126,
  809. out_activation_max=127,
  810. batches=2,
  811. interpreter=interpreter,
  812. int4_weights=True,
  813. generate_bias=False)
  814. dataset = 'kernel1x1_int4_2'
  815. testdata_sets[dataset] = ConvSettings(dataset,
  816. type_of_test,
  817. regenerate_weights,
  818. regenerate_input,
  819. regenerate_biases,
  820. schema_file,
  821. in_ch=60,
  822. out_ch=60,
  823. x_in=60,
  824. y_in=1,
  825. w_x=1,
  826. w_y=1,
  827. stride_x=1,
  828. stride_y=1,
  829. pad=False,
  830. bias_min=TestSettings.INT8_MIN,
  831. bias_max=TestSettings.INT8_MAX,
  832. out_activation_min=-126,
  833. out_activation_max=127,
  834. batches=1,
  835. interpreter=interpreter,
  836. int4_weights=True)
  837. dataset = 'kernel1x1_int4_3'
  838. testdata_sets[dataset] = ConvSettings(dataset,
  839. type_of_test,
  840. regenerate_weights,
  841. regenerate_input,
  842. regenerate_biases,
  843. schema_file,
  844. in_ch=18,
  845. out_ch=47,
  846. x_in=43,
  847. y_in=1,
  848. w_x=1,
  849. w_y=1,
  850. stride_x=1,
  851. stride_y=1,
  852. pad=False,
  853. bias_min=TestSettings.INT8_MIN,
  854. bias_max=TestSettings.INT8_MAX,
  855. out_activation_min=-126,
  856. out_activation_max=127,
  857. batches=1,
  858. interpreter=interpreter,
  859. int4_weights=True)
  860. dataset = 'kernel1x1_stride_x_int4'
  861. testdata_sets[dataset] = ConvSettings(dataset,
  862. type_of_test,
  863. regenerate_weights,
  864. regenerate_input,
  865. regenerate_biases,
  866. schema_file,
  867. in_ch=9,
  868. out_ch=5,
  869. x_in=7,
  870. y_in=4,
  871. w_x=1,
  872. w_y=1,
  873. stride_x=3,
  874. stride_y=1,
  875. pad=False,
  876. out_activation_min=-126,
  877. out_activation_max=127,
  878. batches=2,
  879. interpreter=interpreter,
  880. int4_weights=True)
  881. dataset = 'kernel1x1_stride_x_y_int4'
  882. testdata_sets[dataset] = ConvSettings(dataset,
  883. type_of_test,
  884. regenerate_weights,
  885. regenerate_input,
  886. regenerate_biases,
  887. schema_file,
  888. in_ch=23,
  889. out_ch=15,
  890. randmin=0,
  891. x_in=7,
  892. y_in=6,
  893. w_x=1,
  894. w_y=1,
  895. stride_x=2,
  896. stride_y=2,
  897. pad=False,
  898. out_activation_min=-6,
  899. out_activation_max=127,
  900. batches=3,
  901. interpreter=interpreter,
  902. int4_weights=True)
  903. dataset = 'kernel1x1_stride_x_y_1_int4'
  904. testdata_sets[dataset] = ConvSettings(dataset,
  905. type_of_test,
  906. regenerate_weights,
  907. regenerate_input,
  908. regenerate_biases,
  909. schema_file,
  910. in_ch=5,
  911. out_ch=5,
  912. x_in=4,
  913. y_in=4,
  914. w_x=1,
  915. w_y=1,
  916. stride_x=2,
  917. stride_y=2,
  918. pad=False,
  919. out_activation_min=-126,
  920. out_activation_max=127,
  921. batches=2,
  922. interpreter=interpreter,
  923. int4_weights=True,
  924. generate_bias=False)
  925. dataset = 'kernel1x1_stride_x_y_2_int4'
  926. testdata_sets[dataset] = ConvSettings(dataset,
  927. type_of_test,
  928. regenerate_weights,
  929. regenerate_input,
  930. regenerate_biases,
  931. schema_file,
  932. in_ch=5,
  933. out_ch=5,
  934. x_in=4,
  935. y_in=4,
  936. w_x=1,
  937. w_y=1,
  938. stride_x=3,
  939. stride_y=3,
  940. pad=False,
  941. out_activation_min=-126,
  942. out_activation_max=127,
  943. batches=2,
  944. interpreter=interpreter,
  945. int4_weights=True)
  946. dataset = 'conv_3_int4'
  947. testdata_sets[dataset] = ConvSettings(dataset,
  948. type_of_test,
  949. regenerate_weights,
  950. regenerate_input,
  951. regenerate_biases,
  952. schema_file,
  953. in_ch=3,
  954. out_ch=1,
  955. x_in=10,
  956. y_in=49,
  957. w_x=4,
  958. w_y=10,
  959. stride_x=1,
  960. stride_y=2,
  961. pad=True,
  962. out_activation_min=-127,
  963. out_activation_max=127,
  964. interpreter=interpreter,
  965. int4_weights=True,
  966. generate_bias=False)
  967. dataset = 'conv_1_x_n_1_int4' # left and right pad, no non-padded elements
  968. testdata_sets[dataset] = ConvSettings(dataset,
  969. type_of_test,
  970. regenerate_weights,
  971. regenerate_input,
  972. regenerate_biases,
  973. schema_file,
  974. in_ch=4,
  975. out_ch=3,
  976. x_in=2,
  977. y_in=1,
  978. w_x=3,
  979. w_y=1,
  980. stride_x=1,
  981. stride_y=1,
  982. pad=True,
  983. out_activation_min=-127,
  984. out_activation_max=127,
  985. batches=2,
  986. interpreter=interpreter,
  987. int4_weights=True)
  988. dataset = 'conv_1_x_n_2_int4' # no pad
  989. testdata_sets[dataset] = ConvSettings(dataset,
  990. type_of_test,
  991. regenerate_weights,
  992. regenerate_input,
  993. regenerate_biases,
  994. schema_file,
  995. in_ch=4,
  996. out_ch=3,
  997. x_in=296,
  998. y_in=1,
  999. w_x=48,
  1000. w_y=1,
  1001. stride_x=2,
  1002. stride_y=1,
  1003. pad=False,
  1004. out_activation_min=-111,
  1005. out_activation_max=127,
  1006. interpreter=interpreter,
  1007. int4_weights=True,
  1008. generate_bias=False)
  1009. dataset = 'conv_1_x_n_3_int4'
  1010. testdata_sets[dataset] = ConvSettings(dataset,
  1011. type_of_test,
  1012. regenerate_weights,
  1013. regenerate_input,
  1014. regenerate_biases,
  1015. schema_file,
  1016. in_ch=4,
  1017. out_ch=1,
  1018. x_in=296,
  1019. y_in=1,
  1020. w_x=48,
  1021. w_y=1,
  1022. stride_x=2,
  1023. stride_y=1,
  1024. pad=True,
  1025. out_activation_min=-111,
  1026. out_activation_max=127,
  1027. interpreter=interpreter,
  1028. int4_weights=True)
  1029. dataset = 'conv_1_x_n_4_int4' # 0 left pad, 1 right pad
  1030. testdata_sets[dataset] = ConvSettings(dataset,
  1031. type_of_test,
  1032. regenerate_weights,
  1033. regenerate_input,
  1034. regenerate_biases,
  1035. schema_file,
  1036. in_ch=4,
  1037. out_ch=4,
  1038. x_in=16,
  1039. y_in=1,
  1040. w_x=3,
  1041. w_y=1,
  1042. stride_x=2,
  1043. stride_y=1,
  1044. pad=True,
  1045. out_activation_min=-88,
  1046. out_activation_max=127,
  1047. interpreter=interpreter,
  1048. int4_weights=True)
  1049. dataset = 'conv_1_x_n_5_int4'
  1050. testdata_sets[dataset] = ConvSettings(dataset,
  1051. type_of_test,
  1052. regenerate_weights,
  1053. regenerate_input,
  1054. regenerate_biases,
  1055. schema_file,
  1056. in_ch=4,
  1057. out_ch=1,
  1058. x_in=17,
  1059. y_in=1,
  1060. w_x=3,
  1061. w_y=1,
  1062. stride_x=3,
  1063. stride_y=1,
  1064. pad=True,
  1065. out_activation_min=-88,
  1066. out_activation_max=127,
  1067. interpreter=interpreter,
  1068. int4_weights=True)
  1069. dataset = 'conv_2_int4'
  1070. testdata_sets[dataset] = ConvSettings(dataset,
  1071. type_of_test,
  1072. regenerate_weights,
  1073. regenerate_input,
  1074. regenerate_biases,
  1075. schema_file,
  1076. in_ch=2,
  1077. out_ch=4,
  1078. x_in=6,
  1079. y_in=3,
  1080. w_x=3,
  1081. w_y=3,
  1082. stride_x=1,
  1083. stride_y=1,
  1084. pad=True,
  1085. out_activation_min=-101,
  1086. out_activation_max=127,
  1087. interpreter=interpreter,
  1088. int4_weights=True)
  1089. dataset = 'conv_4_int4' # batches > 2
  1090. testdata_sets[dataset] = ConvSettings(dataset,
  1091. type_of_test,
  1092. regenerate_weights,
  1093. regenerate_input,
  1094. regenerate_biases,
  1095. schema_file,
  1096. in_ch=3,
  1097. out_ch=3,
  1098. x_in=5,
  1099. y_in=5,
  1100. w_x=2,
  1101. w_y=3,
  1102. stride_x=2,
  1103. stride_y=2,
  1104. pad=False,
  1105. out_activation_min=-109,
  1106. out_activation_max=127,
  1107. batches=3,
  1108. interpreter=interpreter,
  1109. int4_weights=True)
  1110. dataset = 'conv_5_int4'
  1111. testdata_sets[dataset] = ConvSettings(dataset,
  1112. type_of_test,
  1113. regenerate_weights,
  1114. regenerate_input,
  1115. regenerate_biases,
  1116. schema_file,
  1117. in_ch=128,
  1118. out_ch=1,
  1119. x_in=128,
  1120. y_in=1,
  1121. w_x=3,
  1122. w_y=3,
  1123. stride_x=4,
  1124. stride_y=4,
  1125. pad=True,
  1126. out_activation_min=-88,
  1127. out_activation_max=127,
  1128. interpreter=interpreter,
  1129. int4_weights=True,
  1130. generate_bias=False)
  1131. dataset = 'conv_out_activation_int4'
  1132. testdata_sets[dataset] = ConvSettings(dataset,
  1133. type_of_test,
  1134. regenerate_weights,
  1135. regenerate_input,
  1136. regenerate_biases,
  1137. schema_file,
  1138. in_ch=4,
  1139. out_ch=2,
  1140. x_in=3,
  1141. y_in=3,
  1142. w_x=3,
  1143. w_y=3,
  1144. stride_x=1,
  1145. stride_y=1,
  1146. pad=True,
  1147. out_activation_min=-61,
  1148. out_activation_max=107,
  1149. interpreter=interpreter,
  1150. int4_weights=True)
  1151. dataset = 'conv_dilation_golden_int4'
  1152. testdata_sets[dataset] = ConvSettings(dataset,
  1153. type_of_test,
  1154. regenerate_weights,
  1155. regenerate_input,
  1156. regenerate_biases,
  1157. schema_file,
  1158. in_ch=1,
  1159. batches=2,
  1160. out_ch=3,
  1161. x_in=6,
  1162. y_in=4,
  1163. w_x=2,
  1164. w_y=2,
  1165. stride_x=1,
  1166. stride_y=1,
  1167. pad=True,
  1168. out_activation_min=-128,
  1169. out_activation_max=127,
  1170. dilation_x=3,
  1171. dilation_y=2,
  1172. interpreter=interpreter,
  1173. int4_weights=True)
  1174. dataset = 'conv_2x2_dilation_int4'
  1175. testdata_sets[dataset] = ConvSettings(dataset,
  1176. type_of_test,
  1177. regenerate_weights,
  1178. regenerate_input,
  1179. regenerate_biases,
  1180. schema_file,
  1181. in_ch=2,
  1182. out_ch=2,
  1183. x_in=10,
  1184. y_in=10,
  1185. w_x=3,
  1186. w_y=3,
  1187. stride_x=1,
  1188. stride_y=1,
  1189. pad=False,
  1190. out_activation_min=-61,
  1191. out_activation_max=107,
  1192. dilation_x=2,
  1193. dilation_y=2,
  1194. interpreter=interpreter,
  1195. int4_weights=True)
  1196. dataset = 'conv_2x3_dilation_int4'
  1197. testdata_sets[dataset] = ConvSettings(dataset,
  1198. type_of_test,
  1199. regenerate_weights,
  1200. regenerate_input,
  1201. regenerate_biases,
  1202. schema_file,
  1203. in_ch=2,
  1204. out_ch=2,
  1205. x_in=3,
  1206. y_in=3,
  1207. w_x=3,
  1208. w_y=3,
  1209. stride_x=1,
  1210. stride_y=1,
  1211. pad=True,
  1212. out_activation_min=-61,
  1213. out_activation_max=107,
  1214. dilation_x=2,
  1215. dilation_y=2,
  1216. interpreter=interpreter,
  1217. int4_weights=True)
  1218. dataset = 'conv_3x2_dilation_int4'
  1219. testdata_sets[dataset] = ConvSettings(dataset,
  1220. type_of_test,
  1221. regenerate_weights,
  1222. regenerate_input,
  1223. regenerate_biases,
  1224. schema_file,
  1225. in_ch=2,
  1226. out_ch=2,
  1227. x_in=3,
  1228. y_in=3,
  1229. w_x=3,
  1230. w_y=3,
  1231. stride_x=1,
  1232. stride_y=1,
  1233. pad=True,
  1234. out_activation_min=-61,
  1235. out_activation_max=107,
  1236. dilation_x=3,
  1237. dilation_y=2,
  1238. interpreter=interpreter,
  1239. int4_weights=True)
  1240. dataset = 'conv_2x2_dilation_5x5_input_int4'
  1241. testdata_sets[dataset] = ConvSettings(dataset,
  1242. type_of_test,
  1243. regenerate_weights,
  1244. regenerate_input,
  1245. regenerate_biases,
  1246. schema_file,
  1247. in_ch=2,
  1248. out_ch=2,
  1249. x_in=5,
  1250. y_in=5,
  1251. w_x=3,
  1252. w_y=3,
  1253. stride_x=1,
  1254. stride_y=1,
  1255. pad=True,
  1256. out_activation_min=-61,
  1257. out_activation_max=107,
  1258. dilation_x=2,
  1259. dilation_y=2,
  1260. interpreter=interpreter,
  1261. int4_weights=True)
  1262. dataset = 'conv_3x3_dilation_5x5_input_int4'
  1263. testdata_sets[dataset] = ConvSettings(dataset,
  1264. type_of_test,
  1265. regenerate_weights,
  1266. regenerate_input,
  1267. regenerate_biases,
  1268. schema_file,
  1269. in_ch=2,
  1270. out_ch=2,
  1271. x_in=9,
  1272. y_in=11,
  1273. w_x=3,
  1274. w_y=3,
  1275. stride_x=1,
  1276. stride_y=1,
  1277. pad=True,
  1278. out_activation_min=-61,
  1279. out_activation_max=107,
  1280. dilation_x=2,
  1281. dilation_y=2,
  1282. interpreter=interpreter,
  1283. int4_weights=True)
  1284. type_of_test = 'transpose_conv'
  1285. dataset = 'transpose_conv_1'
  1286. testdata_sets[dataset] = ConvSettings(dataset,
  1287. type_of_test,
  1288. regenerate_weights,
  1289. regenerate_input,
  1290. regenerate_biases,
  1291. schema_file,
  1292. in_ch=32,
  1293. batches=2,
  1294. out_ch=3,
  1295. x_in=9,
  1296. y_in=9,
  1297. w_x=6,
  1298. w_y=6,
  1299. generate_bias=True,
  1300. stride_x=2,
  1301. stride_y=2,
  1302. pad=True,
  1303. interpreter=interpreter)
  1304. dataset = 'transpose_conv_2'
  1305. testdata_sets[dataset] = ConvSettings(dataset,
  1306. type_of_test,
  1307. regenerate_weights,
  1308. regenerate_input,
  1309. regenerate_biases,
  1310. schema_file,
  1311. in_ch=15,
  1312. batches=1,
  1313. out_ch=4,
  1314. x_in=12,
  1315. y_in=12,
  1316. w_x=3,
  1317. w_y=3,
  1318. generate_bias=False,
  1319. stride_x=3,
  1320. stride_y=1,
  1321. pad=False,
  1322. interpreter=interpreter)
  1323. dataset = 'transpose_conv_3'
  1324. testdata_sets[dataset] = ConvSettings(dataset,
  1325. type_of_test,
  1326. regenerate_weights,
  1327. regenerate_input,
  1328. regenerate_biases,
  1329. schema_file,
  1330. in_ch=7,
  1331. batches=3,
  1332. out_ch=5,
  1333. x_in=1,
  1334. y_in=7,
  1335. w_x=5,
  1336. w_y=1,
  1337. generate_bias=True,
  1338. stride_x=2,
  1339. stride_y=5,
  1340. pad=True,
  1341. interpreter=interpreter)
  1342. dataset = 'transpose_conv_4'
  1343. testdata_sets[dataset] = ConvSettings(dataset,
  1344. type_of_test,
  1345. regenerate_weights,
  1346. regenerate_input,
  1347. regenerate_biases,
  1348. schema_file,
  1349. in_ch=32,
  1350. batches=3,
  1351. out_ch=5,
  1352. x_in=1,
  1353. y_in=7,
  1354. w_x=3,
  1355. w_y=3,
  1356. generate_bias=False,
  1357. stride_x=3,
  1358. stride_y=1,
  1359. pad=False,
  1360. interpreter=interpreter)
  1361. type_of_test = 'depthwise_conv'
  1362. dataset = 'depthwise_2'
  1363. testdata_sets[dataset] = ConvSettings(dataset,
  1364. type_of_test,
  1365. regenerate_weights,
  1366. regenerate_input,
  1367. regenerate_biases,
  1368. schema_file,
  1369. in_ch=3,
  1370. out_ch=9,
  1371. x_in=6,
  1372. y_in=5,
  1373. w_x=3,
  1374. w_y=4,
  1375. stride_x=2,
  1376. stride_y=2,
  1377. pad=True,
  1378. out_activation_min=-73,
  1379. out_activation_max=127,
  1380. interpreter=interpreter)
  1381. dataset = 'depthwise_kernel_3x3'
  1382. testdata_sets[dataset] = ConvSettings(dataset,
  1383. type_of_test,
  1384. regenerate_weights,
  1385. regenerate_input,
  1386. regenerate_biases,
  1387. schema_file,
  1388. in_ch=5,
  1389. out_ch=5,
  1390. x_in=4,
  1391. y_in=5,
  1392. w_x=3,
  1393. w_y=3,
  1394. stride_x=2,
  1395. stride_y=2,
  1396. pad=True,
  1397. bias_min=TestSettings.INT8_MIN,
  1398. bias_max=TestSettings.INT8_MAX,
  1399. out_activation_min=-104,
  1400. out_activation_max=127,
  1401. interpreter=interpreter)
  1402. dataset = 'depthwise_kernel_3x3_null_bias'
  1403. testdata_sets[dataset] = ConvSettings(dataset,
  1404. type_of_test,
  1405. regenerate_weights,
  1406. regenerate_input,
  1407. regenerate_biases,
  1408. schema_file,
  1409. in_ch=5,
  1410. out_ch=5,
  1411. x_in=4,
  1412. y_in=5,
  1413. w_x=3,
  1414. w_y=3,
  1415. stride_x=2,
  1416. stride_y=2,
  1417. pad=True,
  1418. generate_bias=False,
  1419. out_activation_min=-104,
  1420. out_activation_max=127,
  1421. interpreter=interpreter)
  1422. dataset = 'depthwise_eq_in_out_ch'
  1423. testdata_sets[dataset] = ConvSettings(dataset,
  1424. type_of_test,
  1425. regenerate_weights,
  1426. regenerate_input,
  1427. regenerate_biases,
  1428. schema_file,
  1429. in_ch=250,
  1430. out_ch=250,
  1431. x_in=7,
  1432. y_in=5,
  1433. w_x=2,
  1434. w_y=2,
  1435. stride_x=1,
  1436. stride_y=1,
  1437. pad=True,
  1438. interpreter=interpreter)
  1439. dataset = 'depthwise_sub_block'
  1440. testdata_sets[dataset] = ConvSettings(dataset,
  1441. type_of_test,
  1442. regenerate_weights,
  1443. regenerate_input,
  1444. regenerate_biases,
  1445. schema_file,
  1446. in_ch=9,
  1447. out_ch=9,
  1448. x_in=7,
  1449. y_in=5,
  1450. w_x=2,
  1451. w_y=2,
  1452. stride_x=1,
  1453. stride_y=1,
  1454. pad=False,
  1455. interpreter=interpreter)
  1456. dataset = 'depthwise_x_stride'
  1457. testdata_sets[dataset] = ConvSettings(dataset,
  1458. type_of_test,
  1459. regenerate_weights,
  1460. regenerate_input,
  1461. regenerate_biases,
  1462. schema_file,
  1463. in_ch=9,
  1464. out_ch=9,
  1465. x_in=7,
  1466. y_in=5,
  1467. w_x=2,
  1468. w_y=2,
  1469. stride_x=2,
  1470. stride_y=1,
  1471. pad=False,
  1472. interpreter=interpreter)
  1473. dataset = 'depthwise_out_activation'
  1474. testdata_sets[dataset] = ConvSettings(dataset,
  1475. type_of_test,
  1476. regenerate_weights,
  1477. regenerate_input,
  1478. regenerate_biases,
  1479. schema_file,
  1480. in_ch=3,
  1481. out_ch=3,
  1482. x_in=6,
  1483. y_in=5,
  1484. w_x=3,
  1485. w_y=4,
  1486. pad=False,
  1487. out_activation_min=-45,
  1488. out_activation_max=103,
  1489. interpreter=interpreter)
  1490. dataset = 'depthwise_mult_batches'
  1491. testdata_sets[dataset] = ConvSettings(dataset,
  1492. type_of_test,
  1493. regenerate_weights,
  1494. regenerate_input,
  1495. regenerate_biases,
  1496. schema_file,
  1497. in_ch=3,
  1498. out_ch=3,
  1499. x_in=3,
  1500. y_in=5,
  1501. w_x=2,
  1502. w_y=4,
  1503. stride_x=2,
  1504. stride_y=2,
  1505. pad=True,
  1506. batches=2,
  1507. interpreter=interpreter)
  1508. dataset = 'depthwise_null_bias_0'
  1509. testdata_sets[dataset] = ConvSettings(dataset,
  1510. type_of_test,
  1511. regenerate_weights,
  1512. regenerate_input,
  1513. regenerate_biases,
  1514. schema_file,
  1515. in_ch=2,
  1516. out_ch=2,
  1517. x_in=4,
  1518. y_in=5,
  1519. w_x=2,
  1520. w_y=2,
  1521. stride_x=1,
  1522. stride_y=1,
  1523. pad=True,
  1524. generate_bias=False,
  1525. batches=1,
  1526. interpreter=interpreter)
  1527. dataset = 'depthwise_null_bias_1'
  1528. testdata_sets[dataset] = ConvSettings(dataset,
  1529. type_of_test,
  1530. regenerate_weights,
  1531. regenerate_input,
  1532. regenerate_biases,
  1533. schema_file,
  1534. in_ch=2,
  1535. out_ch=16,
  1536. x_in=4,
  1537. y_in=5,
  1538. w_x=2,
  1539. w_y=2,
  1540. stride_x=1,
  1541. stride_y=1,
  1542. pad=True,
  1543. generate_bias=False,
  1544. batches=1,
  1545. interpreter=interpreter)
  1546. dataset = 'depthwise_dilation'
  1547. testdata_sets[dataset] = ConvSettings(dataset,
  1548. type_of_test,
  1549. regenerate_weights,
  1550. regenerate_input,
  1551. regenerate_biases,
  1552. schema_file,
  1553. in_ch=3,
  1554. out_ch=9,
  1555. x_in=6,
  1556. y_in=5,
  1557. w_x=3,
  1558. w_y=4,
  1559. stride_x=1,
  1560. stride_y=1,
  1561. pad=True,
  1562. out_activation_min=-70,
  1563. out_activation_max=127,
  1564. dilation_x=2,
  1565. dilation_y=3,
  1566. interpreter=interpreter)
  1567. dataset = 'dw_int16xint8'
  1568. testdata_sets[dataset] = ConvSettings(dataset,
  1569. type_of_test,
  1570. regenerate_weights,
  1571. regenerate_input,
  1572. regenerate_biases,
  1573. schema_file,
  1574. in_ch=4,
  1575. out_ch=8,
  1576. x_in=9,
  1577. y_in=5,
  1578. w_x=3,
  1579. w_y=4,
  1580. stride_x=3,
  1581. stride_y=2,
  1582. pad=True,
  1583. randmin=TestSettings.INT16_MIN,
  1584. randmax=TestSettings.INT16_MAX,
  1585. out_activation_min=-21111,
  1586. out_activation_max=32767,
  1587. int16xint8=True,
  1588. interpreter=interpreter)
  1589. dataset = 'dw_int16xint8_dilation'
  1590. testdata_sets[dataset] = ConvSettings(dataset,
  1591. type_of_test,
  1592. regenerate_weights,
  1593. regenerate_input,
  1594. regenerate_biases,
  1595. schema_file,
  1596. in_ch=4,
  1597. out_ch=8,
  1598. x_in=9,
  1599. y_in=5,
  1600. w_x=4,
  1601. w_y=4,
  1602. stride_x=1,
  1603. stride_y=1,
  1604. pad=True,
  1605. randmin=TestSettings.INT16_MIN,
  1606. randmax=TestSettings.INT16_MAX,
  1607. out_activation_min=-32700,
  1608. dilation_x=3,
  1609. dilation_y=2,
  1610. out_activation_max=32767,
  1611. int16xint8=True,
  1612. interpreter=interpreter)
  1613. dataset = 'dw_int16xint8_mult4'
  1614. testdata_sets[dataset] = ConvSettings(dataset,
  1615. type_of_test,
  1616. regenerate_weights,
  1617. regenerate_input,
  1618. regenerate_biases,
  1619. schema_file,
  1620. in_ch=2,
  1621. out_ch=8,
  1622. x_in=4,
  1623. y_in=5,
  1624. w_x=3,
  1625. w_y=4,
  1626. stride_x=3,
  1627. stride_y=2,
  1628. pad=False,
  1629. randmin=TestSettings.INT16_MIN,
  1630. randmax=TestSettings.INT16_MAX,
  1631. out_activation_min=-32767,
  1632. out_activation_max=32767,
  1633. int16xint8=True,
  1634. interpreter=interpreter)
  1635. dataset = 'dw_int16xint8_fast'
  1636. testdata_sets[dataset] = ConvSettings(dataset,
  1637. type_of_test,
  1638. regenerate_weights,
  1639. regenerate_input,
  1640. regenerate_biases,
  1641. schema_file,
  1642. in_ch=8,
  1643. out_ch=8,
  1644. x_in=4,
  1645. y_in=4,
  1646. w_x=2,
  1647. w_y=2,
  1648. stride_x=1,
  1649. stride_y=1,
  1650. pad=False,
  1651. randmin=TestSettings.INT16_MIN,
  1652. randmax=TestSettings.INT16_MAX,
  1653. out_activation_min=-17000,
  1654. out_activation_max=32767,
  1655. int16xint8=True,
  1656. interpreter=interpreter)
  1657. dataset = 'dw_int16xint8_fast_multiple_batches_uneven_buffers'
  1658. testdata_sets[dataset] = ConvSettings(dataset,
  1659. type_of_test,
  1660. regenerate_weights,
  1661. regenerate_input,
  1662. regenerate_biases,
  1663. schema_file,
  1664. in_ch=8,
  1665. out_ch=8,
  1666. x_in=5,
  1667. y_in=5,
  1668. w_x=3,
  1669. w_y=3,
  1670. stride_x=1,
  1671. stride_y=1,
  1672. pad=False,
  1673. randmin=TestSettings.INT16_MIN,
  1674. randmax=TestSettings.INT16_MAX,
  1675. out_activation_min=-17000,
  1676. out_activation_max=32767,
  1677. int16xint8=True,
  1678. batches=3,
  1679. interpreter=interpreter)
  1680. dataset = 'dw_int16xint8_fast_multiple_batches_uneven_buffers_null_bias'
  1681. testdata_sets[dataset] = ConvSettings(dataset,
  1682. type_of_test,
  1683. regenerate_weights,
  1684. regenerate_input,
  1685. regenerate_biases,
  1686. schema_file,
  1687. in_ch=8,
  1688. out_ch=8,
  1689. x_in=4,
  1690. y_in=4,
  1691. w_x=3,
  1692. w_y=2,
  1693. stride_x=1,
  1694. stride_y=1,
  1695. pad=False,
  1696. randmin=TestSettings.INT16_MIN,
  1697. randmax=TestSettings.INT16_MAX,
  1698. out_activation_min=-17000,
  1699. out_activation_max=32767,
  1700. int16xint8=True,
  1701. batches=3,
  1702. generate_bias=False,
  1703. interpreter=interpreter)
  1704. dataset = 'dw_int16xint8_fast_test_bias'
  1705. nbr_of_out_channels = 8
  1706. bias = [i for i in range(nbr_of_out_channels)]
  1707. testdata_sets[dataset] = ConvSettings(dataset,
  1708. type_of_test,
  1709. regenerate_weights,
  1710. regenerate_input,
  1711. regenerate_biases,
  1712. schema_file,
  1713. in_ch=8,
  1714. out_ch=nbr_of_out_channels,
  1715. x_in=4,
  1716. y_in=4,
  1717. w_x=2,
  1718. w_y=2,
  1719. stride_x=1,
  1720. stride_y=1,
  1721. pad=False,
  1722. randmin=TestSettings.INT16_MIN,
  1723. randmax=TestSettings.INT16_MAX,
  1724. out_activation_min=-17000,
  1725. out_activation_max=32767,
  1726. int16xint8=True,
  1727. generate_bias=bias,
  1728. interpreter=interpreter)
  1729. dataset = 'dw_int16xint8_fast_null_bias'
  1730. testdata_sets[dataset] = ConvSettings(dataset,
  1731. type_of_test,
  1732. regenerate_weights,
  1733. regenerate_input,
  1734. regenerate_biases,
  1735. schema_file,
  1736. in_ch=8,
  1737. out_ch=8,
  1738. x_in=4,
  1739. y_in=4,
  1740. w_x=2,
  1741. w_y=2,
  1742. stride_x=1,
  1743. stride_y=1,
  1744. pad=False,
  1745. randmin=TestSettings.INT16_MIN,
  1746. randmax=TestSettings.INT16_MAX,
  1747. out_activation_min=-17000,
  1748. out_activation_max=32767,
  1749. int16xint8=True,
  1750. generate_bias=False,
  1751. interpreter=interpreter)
  1752. dataset = 'dw_int16xint8_fast_stride'
  1753. testdata_sets[dataset] = ConvSettings(dataset,
  1754. type_of_test,
  1755. regenerate_weights,
  1756. regenerate_input,
  1757. regenerate_biases,
  1758. schema_file,
  1759. in_ch=8,
  1760. out_ch=8,
  1761. x_in=4,
  1762. y_in=4,
  1763. w_x=2,
  1764. w_y=2,
  1765. stride_x=2,
  1766. stride_y=2,
  1767. pad=True,
  1768. randmin=TestSettings.INT16_MIN,
  1769. randmax=TestSettings.INT16_MAX,
  1770. batches=2,
  1771. out_activation_min=TestSettings.INT16_MIN,
  1772. out_activation_max=16000,
  1773. int16xint8=True,
  1774. interpreter=interpreter)
  1775. dataset = 'dw_int16xint8_fast_stride_null_bias'
  1776. testdata_sets[dataset] = ConvSettings(dataset,
  1777. type_of_test,
  1778. regenerate_weights,
  1779. regenerate_input,
  1780. regenerate_biases,
  1781. schema_file,
  1782. in_ch=8,
  1783. out_ch=8,
  1784. x_in=4,
  1785. y_in=4,
  1786. w_x=2,
  1787. w_y=2,
  1788. stride_x=2,
  1789. stride_y=2,
  1790. pad=True,
  1791. randmin=TestSettings.INT16_MIN,
  1792. randmax=TestSettings.INT16_MAX,
  1793. batches=2,
  1794. out_activation_min=TestSettings.INT16_MIN,
  1795. out_activation_max=16000,
  1796. int16xint8=True,
  1797. generate_bias=False,
  1798. interpreter=interpreter)
  1799. dataset = 'dw_int16xint8_fast_spill'
  1800. testdata_sets[dataset] = ConvSettings(dataset,
  1801. type_of_test,
  1802. regenerate_weights,
  1803. regenerate_input,
  1804. regenerate_biases,
  1805. schema_file,
  1806. in_ch=5,
  1807. out_ch=5,
  1808. x_in=4,
  1809. y_in=4,
  1810. w_x=3,
  1811. w_y=3,
  1812. stride_x=2,
  1813. stride_y=1,
  1814. pad=True,
  1815. randmin=TestSettings.INT16_MIN,
  1816. randmax=TestSettings.INT16_MAX,
  1817. batches=3,
  1818. out_activation_min=-30000,
  1819. out_activation_max=32767,
  1820. int16xint8=True,
  1821. interpreter=interpreter)
  1822. dataset = 'dw_int16xint8_fast_spill_null_bias'
  1823. testdata_sets[dataset] = ConvSettings(dataset,
  1824. type_of_test,
  1825. regenerate_weights,
  1826. regenerate_input,
  1827. regenerate_biases,
  1828. schema_file,
  1829. in_ch=5,
  1830. out_ch=5,
  1831. x_in=4,
  1832. y_in=4,
  1833. w_x=3,
  1834. w_y=3,
  1835. stride_x=2,
  1836. stride_y=1,
  1837. pad=True,
  1838. randmin=TestSettings.INT16_MIN,
  1839. randmax=TestSettings.INT16_MAX,
  1840. batches=3,
  1841. out_activation_min=-30000,
  1842. out_activation_max=32767,
  1843. int16xint8=True,
  1844. generate_bias=False,
  1845. interpreter=interpreter)
  1846. dataset = 'depthwise_int4_1'
  1847. testdata_sets[dataset] = ConvSettings(dataset,
  1848. type_of_test,
  1849. regenerate_weights,
  1850. regenerate_input,
  1851. regenerate_biases,
  1852. schema_file,
  1853. in_ch=22,
  1854. out_ch=22,
  1855. x_in=1,
  1856. y_in=23,
  1857. w_x=1,
  1858. w_y=3,
  1859. stride_x=1,
  1860. stride_y=1,
  1861. pad=False,
  1862. out_activation_min=-127,
  1863. out_activation_max=127,
  1864. generate_bias=False,
  1865. interpreter=interpreter,
  1866. int4_weights=True)
  1867. dataset = 'depthwise_int4_2'
  1868. testdata_sets[dataset] = ConvSettings(dataset,
  1869. type_of_test,
  1870. regenerate_weights,
  1871. regenerate_input,
  1872. regenerate_biases,
  1873. schema_file,
  1874. in_ch=19,
  1875. out_ch=19,
  1876. x_in=6,
  1877. y_in=6,
  1878. w_x=5,
  1879. w_y=5,
  1880. stride_x=1,
  1881. stride_y=1,
  1882. pad=False,
  1883. out_activation_min=-127,
  1884. out_activation_max=127,
  1885. generate_bias=False,
  1886. interpreter=interpreter,
  1887. int4_weights=True)
  1888. dataset = 'depthwise_int4_3'
  1889. testdata_sets[dataset] = ConvSettings(dataset,
  1890. type_of_test,
  1891. regenerate_weights,
  1892. regenerate_input,
  1893. regenerate_biases,
  1894. schema_file,
  1895. in_ch=1,
  1896. out_ch=1,
  1897. x_in=2,
  1898. y_in=2,
  1899. w_x=2,
  1900. w_y=2,
  1901. stride_x=1,
  1902. stride_y=1,
  1903. pad=False,
  1904. out_activation_min=-127,
  1905. out_activation_max=127,
  1906. generate_bias=False,
  1907. interpreter=interpreter,
  1908. int4_weights=True)
  1909. dataset = 'depthwise_int4_4'
  1910. testdata_sets[dataset] = ConvSettings(dataset,
  1911. type_of_test,
  1912. regenerate_weights,
  1913. regenerate_input,
  1914. regenerate_biases,
  1915. schema_file,
  1916. in_ch=3,
  1917. out_ch=3,
  1918. x_in=4,
  1919. y_in=4,
  1920. w_x=2,
  1921. w_y=2,
  1922. stride_x=2,
  1923. stride_y=2,
  1924. pad=False,
  1925. out_activation_min=-127,
  1926. out_activation_max=127,
  1927. generate_bias=False,
  1928. interpreter=interpreter,
  1929. int4_weights=True)
  1930. dataset = 'depthwise_int4_generic'
  1931. testdata_sets[dataset] = ConvSettings(dataset,
  1932. type_of_test,
  1933. regenerate_weights,
  1934. regenerate_input,
  1935. regenerate_biases,
  1936. schema_file,
  1937. in_ch=2,
  1938. out_ch=8,
  1939. x_in=16,
  1940. y_in=16,
  1941. w_x=8,
  1942. w_y=8,
  1943. stride_x=2,
  1944. stride_y=2,
  1945. pad=False,
  1946. out_activation_min=-127,
  1947. out_activation_max=127,
  1948. generate_bias=False,
  1949. interpreter=interpreter,
  1950. int4_weights=True)
  1951. dataset = 'depthwise_int4_generic_2'
  1952. testdata_sets[dataset] = ConvSettings(dataset,
  1953. type_of_test,
  1954. regenerate_weights,
  1955. regenerate_input,
  1956. regenerate_biases,
  1957. schema_file,
  1958. in_ch=3,
  1959. out_ch=9,
  1960. x_in=9,
  1961. y_in=9,
  1962. w_x=6,
  1963. w_y=5,
  1964. stride_x=2,
  1965. stride_y=1,
  1966. pad=True,
  1967. out_activation_min=-127,
  1968. out_activation_max=127,
  1969. generate_bias=True,
  1970. interpreter=interpreter,
  1971. int4_weights=True)
  1972. dataset = 'depthwise_int4_generic_3'
  1973. testdata_sets[dataset] = ConvSettings(dataset,
  1974. type_of_test,
  1975. regenerate_weights,
  1976. regenerate_input,
  1977. regenerate_biases,
  1978. schema_file,
  1979. in_ch=4,
  1980. out_ch=8,
  1981. x_in=9,
  1982. y_in=9,
  1983. w_x=5,
  1984. w_y=5,
  1985. stride_x=1,
  1986. stride_y=1,
  1987. pad=False,
  1988. out_activation_min=-127,
  1989. out_activation_max=125,
  1990. dilation_x=2,
  1991. dilation_y=2,
  1992. generate_bias=True,
  1993. interpreter=interpreter,
  1994. int4_weights=True)
  1995. dataset = 'depthwise_int4_generic_4'
  1996. testdata_sets[dataset] = ConvSettings(dataset,
  1997. type_of_test,
  1998. regenerate_weights,
  1999. regenerate_input,
  2000. regenerate_biases,
  2001. schema_file,
  2002. in_ch=1,
  2003. out_ch=3,
  2004. x_in=12,
  2005. y_in=10,
  2006. w_x=5,
  2007. w_y=5,
  2008. stride_x=1,
  2009. stride_y=2,
  2010. pad=True,
  2011. out_activation_min=-127,
  2012. out_activation_max=127,
  2013. generate_bias=True,
  2014. interpreter=interpreter,
  2015. int4_weights=True)
  2016. dataset = 'depthwise_int4_generic_5'
  2017. testdata_sets[dataset] = ConvSettings(dataset,
  2018. type_of_test,
  2019. regenerate_weights,
  2020. regenerate_input,
  2021. regenerate_biases,
  2022. schema_file,
  2023. in_ch=20,
  2024. out_ch=20,
  2025. x_in=21,
  2026. y_in=21,
  2027. w_x=5,
  2028. w_y=5,
  2029. stride_x=1,
  2030. stride_y=2,
  2031. pad=False,
  2032. out_activation_min=-127,
  2033. out_activation_max=125,
  2034. dilation_x=2,
  2035. dilation_y=2,
  2036. generate_bias=True,
  2037. interpreter=interpreter,
  2038. int4_weights=True)
  2039. dataset = 'depthwise_int4_generic_6'
  2040. testdata_sets[dataset] = ConvSettings(dataset,
  2041. type_of_test,
  2042. regenerate_weights,
  2043. regenerate_input,
  2044. regenerate_biases,
  2045. schema_file,
  2046. in_ch=4,
  2047. out_ch=12,
  2048. x_in=21,
  2049. y_in=21,
  2050. w_x=3,
  2051. w_y=3,
  2052. stride_x=1,
  2053. stride_y=1,
  2054. pad=False,
  2055. out_activation_min=-127,
  2056. out_activation_max=125,
  2057. dilation_x=1,
  2058. dilation_y=2,
  2059. generate_bias=True,
  2060. interpreter=interpreter,
  2061. int4_weights=True)
  2062. type_of_test = 'fully_connected'
  2063. dataset = 'fully_connected'
  2064. testdata_sets[dataset] = FullyConnectedSettings(dataset,
  2065. type_of_test,
  2066. regenerate_weights,
  2067. regenerate_input,
  2068. regenerate_biases,
  2069. schema_file,
  2070. in_ch=10,
  2071. out_ch=6,
  2072. x_in=2,
  2073. y_in=1,
  2074. batches=3,
  2075. interpreter=interpreter)
  2076. dataset = 'fully_connected_w_zp'
  2077. testdata_sets[dataset] = FullyConnectedSettings(dataset,
  2078. type_of_test,
  2079. regenerate_weights,
  2080. regenerate_input,
  2081. regenerate_biases,
  2082. schema_file,
  2083. in_ch=10,
  2084. out_ch=6,
  2085. x_in=2,
  2086. y_in=1,
  2087. batches=3,
  2088. input_scale=0.034,
  2089. w_scale=0.054,
  2090. bias_scale=0.00000001,
  2091. output_scale=0.356,
  2092. input_zp=2,
  2093. output_zp=35,
  2094. w_zp=15,
  2095. generate_bias=False,
  2096. interpreter=interpreter)
  2097. dataset = 'fully_connected_mve_0'
  2098. testdata_sets[dataset] = FullyConnectedSettings(dataset,
  2099. type_of_test,
  2100. regenerate_weights,
  2101. regenerate_input,
  2102. regenerate_biases,
  2103. schema_file,
  2104. in_ch=16,
  2105. out_ch=9,
  2106. x_in=1,
  2107. y_in=1,
  2108. batches=1,
  2109. interpreter=interpreter)
  2110. dataset = 'fully_connected_mve_1'
  2111. testdata_sets[dataset] = FullyConnectedSettings(dataset,
  2112. type_of_test,
  2113. regenerate_weights,
  2114. regenerate_input,
  2115. regenerate_biases,
  2116. schema_file,
  2117. in_ch=20,
  2118. out_ch=4,
  2119. x_in=1,
  2120. y_in=1,
  2121. batches=1,
  2122. interpreter=interpreter)
  2123. dataset = 'fully_connected_null_bias_0'
  2124. testdata_sets[dataset] = FullyConnectedSettings(dataset,
  2125. type_of_test,
  2126. regenerate_weights,
  2127. regenerate_input,
  2128. regenerate_biases,
  2129. schema_file,
  2130. in_ch=33,
  2131. out_ch=5,
  2132. batches=2,
  2133. generate_bias=False,
  2134. interpreter=interpreter)
  2135. dataset = 'fully_connected_out_activation'
  2136. testdata_sets[dataset] = FullyConnectedSettings(dataset,
  2137. type_of_test,
  2138. regenerate_weights,
  2139. regenerate_input,
  2140. regenerate_biases,
  2141. schema_file,
  2142. in_ch=10,
  2143. out_ch=4,
  2144. out_activation_min=-70,
  2145. out_activation_max=100,
  2146. interpreter=interpreter)
  2147. dataset = 'fully_connected_int16'
  2148. testdata_sets[dataset] = FullyConnectedSettings(dataset,
  2149. type_of_test,
  2150. regenerate_weights,
  2151. regenerate_input,
  2152. regenerate_biases,
  2153. schema_file,
  2154. in_ch=7,
  2155. out_ch=11,
  2156. x_in=3,
  2157. y_in=3,
  2158. batches=2,
  2159. randmin=TestSettings.INT16_MIN,
  2160. randmax=TestSettings.INT16_MAX,
  2161. out_activation_min=-9999,
  2162. out_activation_max=32767,
  2163. int16xint8=True,
  2164. interpreter=interpreter)
  2165. dataset = 'fully_connected_int4'
  2166. testdata_sets[dataset] = FullyConnectedSettings(dataset,
  2167. type_of_test,
  2168. regenerate_weights,
  2169. regenerate_input,
  2170. regenerate_biases,
  2171. schema_file,
  2172. int4_weights=True,
  2173. in_ch=2,
  2174. out_ch=5,
  2175. x_in=1,
  2176. y_in=1,
  2177. batches=1,
  2178. bias_min=TestSettings.INT8_MIN,
  2179. bias_max=TestSettings.INT8_MAX,
  2180. int16xint8=False,
  2181. input_zp=3,
  2182. output_zp=-3,
  2183. interpreter=interpreter)
  2184. dataset = 'fully_connected_int4_2'
  2185. testdata_sets[dataset] = FullyConnectedSettings(dataset,
  2186. type_of_test,
  2187. regenerate_weights,
  2188. regenerate_input,
  2189. regenerate_biases,
  2190. schema_file,
  2191. int4_weights=True,
  2192. in_ch=4,
  2193. out_ch=7,
  2194. x_in=1,
  2195. y_in=1,
  2196. batches=1,
  2197. bias_min=TestSettings.INT8_MIN,
  2198. bias_max=TestSettings.INT8_MAX,
  2199. generate_bias=True,
  2200. int16xint8=False,
  2201. input_zp=-4,
  2202. output_zp=16,
  2203. interpreter=interpreter)
  2204. dataset = 'fully_connected_int4_3'
  2205. testdata_sets[dataset] = FullyConnectedSettings(dataset,
  2206. type_of_test,
  2207. regenerate_weights,
  2208. regenerate_input,
  2209. regenerate_biases,
  2210. schema_file,
  2211. int4_weights=True,
  2212. in_ch=6,
  2213. out_ch=9,
  2214. x_in=1,
  2215. y_in=1,
  2216. batches=1,
  2217. bias_min=TestSettings.INT8_MIN,
  2218. bias_max=TestSettings.INT8_MAX,
  2219. out_activation_min=-64,
  2220. out_activation_max=64,
  2221. int16xint8=False,
  2222. input_zp=1,
  2223. output_zp=0,
  2224. interpreter=interpreter)
  2225. dataset = 'fully_connected_int4_4'
  2226. testdata_sets[dataset] = FullyConnectedSettings(dataset,
  2227. type_of_test,
  2228. regenerate_weights,
  2229. regenerate_input,
  2230. regenerate_biases,
  2231. schema_file,
  2232. int4_weights=True,
  2233. in_ch=5,
  2234. out_ch=2,
  2235. x_in=1,
  2236. y_in=1,
  2237. batches=1,
  2238. bias_min=TestSettings.INT8_MIN,
  2239. bias_max=TestSettings.INT8_MAX,
  2240. generate_bias=True,
  2241. int16xint8=False,
  2242. input_zp=-2,
  2243. output_zp=0,
  2244. interpreter=interpreter)
  2245. dataset = 'fully_connected_int4_5'
  2246. testdata_sets[dataset] = FullyConnectedSettings(dataset,
  2247. type_of_test,
  2248. regenerate_weights,
  2249. regenerate_input,
  2250. regenerate_biases,
  2251. schema_file,
  2252. int4_weights=True,
  2253. in_ch=7,
  2254. out_ch=4,
  2255. x_in=1,
  2256. y_in=1,
  2257. bias_min=TestSettings.INT32_MIN,
  2258. bias_max=TestSettings.INT32_MAX,
  2259. batches=1,
  2260. out_activation_min=-64,
  2261. out_activation_max=64,
  2262. generate_bias=True,
  2263. int16xint8=False,
  2264. input_zp=128,
  2265. output_zp=-127,
  2266. interpreter=interpreter)
  2267. dataset = 'fully_connected_int4_6'
  2268. testdata_sets[dataset] = FullyConnectedSettings(dataset,
  2269. type_of_test,
  2270. regenerate_weights,
  2271. regenerate_input,
  2272. regenerate_biases,
  2273. schema_file,
  2274. int4_weights=True,
  2275. in_ch=9,
  2276. out_ch=6,
  2277. x_in=1,
  2278. bias_min=TestSettings.INT32_MIN,
  2279. bias_max=TestSettings.INT32_MAX,
  2280. y_in=1,
  2281. batches=1,
  2282. generate_bias=False,
  2283. int16xint8=False,
  2284. input_zp=-127,
  2285. output_zp=128,
  2286. interpreter=interpreter)
  2287. dataset = 'fully_connected_int16_big'
  2288. testdata_sets[dataset] = FullyConnectedSettings(dataset,
  2289. type_of_test,
  2290. regenerate_weights,
  2291. regenerate_input,
  2292. regenerate_biases,
  2293. schema_file,
  2294. in_ch=7,
  2295. out_ch=11,
  2296. x_in=10,
  2297. y_in=10,
  2298. batches=3,
  2299. out_activation_min=-1444,
  2300. out_activation_max=32767,
  2301. int16xint8=True,
  2302. interpreter=interpreter)
  2303. dataset = 'fc_int16_slow'
  2304. testdata_sets[dataset] = FullyConnectedSettings(dataset,
  2305. type_of_test,
  2306. regenerate_weights,
  2307. regenerate_input,
  2308. regenerate_biases,
  2309. schema_file,
  2310. in_ch=7,
  2311. out_ch=11,
  2312. x_in=10,
  2313. y_in=8,
  2314. batches=3,
  2315. randmin=(TestSettings.INT16_MAX - 100),
  2316. randmax=TestSettings.INT16_MAX,
  2317. int16xint8=True,
  2318. interpreter=interpreter)
  2319. type_of_test = 'avgpool'
  2320. dataset = 'avgpooling'
  2321. testdata_sets[dataset] = PoolingSettings(dataset,
  2322. type_of_test,
  2323. regenerate_weights,
  2324. regenerate_input,
  2325. regenerate_biases,
  2326. schema_file,
  2327. channels=20,
  2328. x_in=22,
  2329. y_in=12,
  2330. stride_x=9,
  2331. stride_y=5,
  2332. w_x=6,
  2333. w_y=5,
  2334. pad=True,
  2335. interpreter=interpreter)
  2336. dataset = 'avgpooling_1'
  2337. testdata_sets[dataset] = PoolingSettings(dataset,
  2338. type_of_test,
  2339. regenerate_weights,
  2340. regenerate_input,
  2341. regenerate_biases,
  2342. schema_file,
  2343. channels=3,
  2344. x_in=9,
  2345. y_in=5,
  2346. stride_x=1,
  2347. stride_y=2,
  2348. w_x=9,
  2349. w_y=5,
  2350. pad=False,
  2351. interpreter=interpreter)
  2352. dataset = 'avgpooling_2'
  2353. testdata_sets[dataset] = PoolingSettings(dataset,
  2354. type_of_test,
  2355. regenerate_weights,
  2356. regenerate_input,
  2357. regenerate_biases,
  2358. schema_file,
  2359. channels=5,
  2360. x_in=12,
  2361. y_in=1,
  2362. stride_x=1,
  2363. stride_y=2,
  2364. w_x=3,
  2365. w_y=1,
  2366. pad=True,
  2367. interpreter=interpreter)
  2368. dataset = 'avgpooling_3'
  2369. testdata_sets[dataset] = PoolingSettings(dataset,
  2370. type_of_test,
  2371. regenerate_weights,
  2372. regenerate_input,
  2373. regenerate_biases,
  2374. schema_file,
  2375. channels=2,
  2376. x_in=9,
  2377. y_in=1,
  2378. stride_x=2,
  2379. stride_y=1,
  2380. w_x=1,
  2381. w_y=1,
  2382. batches=2,
  2383. pad=False,
  2384. interpreter=interpreter)
  2385. dataset = 'avgpooling_4'
  2386. testdata_sets[dataset] = PoolingSettings(dataset,
  2387. type_of_test,
  2388. regenerate_weights,
  2389. regenerate_input,
  2390. regenerate_biases,
  2391. schema_file,
  2392. channels=2,
  2393. x_in=1,
  2394. y_in=20,
  2395. stride_x=1,
  2396. stride_y=3,
  2397. w_x=1,
  2398. w_y=3,
  2399. batches=3,
  2400. pad=True,
  2401. interpreter=interpreter)
  2402. dataset = 'avgpooling_5'
  2403. testdata_sets[dataset] = PoolingSettings(dataset,
  2404. type_of_test,
  2405. regenerate_weights,
  2406. regenerate_input,
  2407. regenerate_biases,
  2408. schema_file,
  2409. channels=1,
  2410. x_in=3,
  2411. y_in=3,
  2412. stride_x=1,
  2413. stride_y=1,
  2414. w_x=1,
  2415. w_y=3,
  2416. pad=True,
  2417. relu6=True,
  2418. interpreter=interpreter)
  2419. dataset = 'avgpooling_int16'
  2420. testdata_sets[dataset] = PoolingSettings(dataset,
  2421. type_of_test,
  2422. regenerate_weights,
  2423. regenerate_input,
  2424. regenerate_biases,
  2425. schema_file,
  2426. channels=17,
  2427. x_in=6,
  2428. y_in=4,
  2429. stride_x=2,
  2430. stride_y=1,
  2431. w_x=2,
  2432. w_y=3,
  2433. pad=True,
  2434. randmin=TestSettings.INT16_MIN,
  2435. randmax=TestSettings.INT16_MAX,
  2436. int16xint8=True,
  2437. interpreter=interpreter)
  2438. dataset = 'avgpooling_int16_1'
  2439. testdata_sets[dataset] = PoolingSettings(dataset,
  2440. type_of_test,
  2441. regenerate_weights,
  2442. regenerate_input,
  2443. regenerate_biases,
  2444. schema_file,
  2445. channels=2,
  2446. x_in=9,
  2447. y_in=1,
  2448. stride_x=2,
  2449. stride_y=1,
  2450. w_x=1,
  2451. w_y=1,
  2452. batches=3,
  2453. pad=False,
  2454. randmin=TestSettings.INT16_MIN,
  2455. randmax=TestSettings.INT16_MAX,
  2456. int16xint8=True,
  2457. interpreter=interpreter)
  2458. dataset = 'avgpooling_int16_2'
  2459. testdata_sets[dataset] = PoolingSettings(dataset,
  2460. type_of_test,
  2461. regenerate_weights,
  2462. regenerate_input,
  2463. regenerate_biases,
  2464. schema_file,
  2465. channels=20,
  2466. x_in=9,
  2467. y_in=1,
  2468. stride_x=2,
  2469. stride_y=1,
  2470. w_x=1,
  2471. w_y=1,
  2472. pad=False,
  2473. randmin=TestSettings.INT16_MIN,
  2474. randmax=TestSettings.INT16_MAX,
  2475. int16xint8=True,
  2476. interpreter=interpreter)
  2477. dataset = 'avgpooling_int16_3'
  2478. testdata_sets[dataset] = PoolingSettings(dataset,
  2479. type_of_test,
  2480. regenerate_weights,
  2481. regenerate_input,
  2482. regenerate_biases,
  2483. schema_file,
  2484. channels=21,
  2485. x_in=1,
  2486. y_in=20,
  2487. stride_x=1,
  2488. stride_y=3,
  2489. w_x=1,
  2490. w_y=3,
  2491. pad=True,
  2492. randmin=TestSettings.INT16_MIN,
  2493. randmax=TestSettings.INT16_MAX,
  2494. int16xint8=True,
  2495. interpreter=interpreter)
  2496. type_of_test = 'maxpool'
  2497. dataset = 'maxpooling'
  2498. testdata_sets[dataset] = PoolingSettings(dataset,
  2499. type_of_test,
  2500. regenerate_weights,
  2501. regenerate_input,
  2502. regenerate_biases,
  2503. schema_file,
  2504. channels=8,
  2505. x_in=22,
  2506. y_in=12,
  2507. stride_x=9,
  2508. stride_y=5,
  2509. w_x=6,
  2510. w_y=5,
  2511. batches=2,
  2512. pad=True,
  2513. interpreter=interpreter)
  2514. dataset = 'maxpooling_1'
  2515. testdata_sets[dataset] = PoolingSettings(dataset,
  2516. type_of_test,
  2517. regenerate_weights,
  2518. regenerate_input,
  2519. regenerate_biases,
  2520. schema_file,
  2521. channels=3,
  2522. x_in=9,
  2523. y_in=5,
  2524. stride_x=1,
  2525. stride_y=2,
  2526. w_x=9,
  2527. w_y=5,
  2528. pad=False,
  2529. interpreter=interpreter)
  2530. dataset = 'maxpooling_2'
  2531. testdata_sets[dataset] = PoolingSettings(dataset,
  2532. type_of_test,
  2533. regenerate_weights,
  2534. regenerate_input,
  2535. regenerate_biases,
  2536. schema_file,
  2537. channels=5,
  2538. x_in=12,
  2539. y_in=1,
  2540. stride_x=1,
  2541. stride_y=2,
  2542. w_x=3,
  2543. w_y=1,
  2544. pad=True,
  2545. interpreter=interpreter)
  2546. dataset = 'maxpooling_3'
  2547. testdata_sets[dataset] = PoolingSettings(dataset,
  2548. type_of_test,
  2549. regenerate_weights,
  2550. regenerate_input,
  2551. regenerate_biases,
  2552. schema_file,
  2553. channels=2,
  2554. x_in=9,
  2555. y_in=1,
  2556. stride_x=2,
  2557. stride_y=1,
  2558. w_x=1,
  2559. w_y=1,
  2560. batches=3,
  2561. pad=False,
  2562. interpreter=interpreter)
  2563. dataset = 'maxpooling_4'
  2564. testdata_sets[dataset] = PoolingSettings(dataset,
  2565. type_of_test,
  2566. regenerate_weights,
  2567. regenerate_input,
  2568. regenerate_biases,
  2569. schema_file,
  2570. channels=2,
  2571. x_in=1,
  2572. y_in=20,
  2573. stride_x=1,
  2574. stride_y=3,
  2575. w_x=1,
  2576. w_y=3,
  2577. pad=True,
  2578. interpreter=interpreter)
  2579. dataset = 'maxpooling_5'
  2580. testdata_sets[dataset] = PoolingSettings(dataset,
  2581. type_of_test,
  2582. regenerate_weights,
  2583. regenerate_input,
  2584. regenerate_biases,
  2585. schema_file,
  2586. channels=20,
  2587. x_in=1,
  2588. y_in=1,
  2589. stride_x=1,
  2590. stride_y=1,
  2591. w_x=1,
  2592. w_y=1,
  2593. pad=True,
  2594. interpreter=interpreter)
  2595. dataset = 'maxpooling_6'
  2596. testdata_sets[dataset] = PoolingSettings(dataset,
  2597. type_of_test,
  2598. regenerate_weights,
  2599. regenerate_input,
  2600. regenerate_biases,
  2601. schema_file,
  2602. channels=17,
  2603. x_in=1,
  2604. y_in=5,
  2605. stride_x=1,
  2606. stride_y=3,
  2607. w_x=3,
  2608. w_y=4,
  2609. pad=True,
  2610. interpreter=interpreter)
  2611. dataset = 'maxpooling_7'
  2612. testdata_sets[dataset] = PoolingSettings(dataset,
  2613. type_of_test,
  2614. regenerate_weights,
  2615. regenerate_input,
  2616. regenerate_biases,
  2617. schema_file,
  2618. channels=1,
  2619. x_in=4,
  2620. y_in=2,
  2621. stride_x=2,
  2622. stride_y=2,
  2623. w_x=2,
  2624. w_y=2,
  2625. pad=False,
  2626. relu6=True,
  2627. interpreter=interpreter)
  2628. dataset = 'maxpool_int16'
  2629. testdata_sets[dataset] = PoolingSettings(dataset,
  2630. type_of_test,
  2631. regenerate_weights,
  2632. regenerate_input,
  2633. regenerate_biases,
  2634. schema_file,
  2635. channels=2,
  2636. x_in=4,
  2637. y_in=3,
  2638. stride_x=2,
  2639. stride_y=2,
  2640. w_x=2,
  2641. w_y=2,
  2642. batches=3,
  2643. pad=False,
  2644. randmin=TestSettings.INT16_MIN,
  2645. randmax=TestSettings.INT16_MAX,
  2646. int16xint8=True,
  2647. interpreter=interpreter)
  2648. dataset = 'maxpool_int16_1'
  2649. testdata_sets[dataset] = PoolingSettings(dataset,
  2650. type_of_test,
  2651. regenerate_weights,
  2652. regenerate_input,
  2653. regenerate_biases,
  2654. schema_file,
  2655. channels=2,
  2656. x_in=4,
  2657. y_in=5,
  2658. stride_x=2,
  2659. stride_y=1,
  2660. w_x=3,
  2661. w_y=3,
  2662. batches=2,
  2663. pad=True,
  2664. randmin=TestSettings.INT16_MIN,
  2665. randmax=TestSettings.INT16_MAX,
  2666. out_activation_min=-30000,
  2667. out_activation_max=30000,
  2668. int16xint8=True,
  2669. interpreter=interpreter)
  2670. dataset = 'maxpool_int16_2'
  2671. testdata_sets[dataset] = PoolingSettings(dataset,
  2672. type_of_test,
  2673. regenerate_weights,
  2674. regenerate_input,
  2675. regenerate_biases,
  2676. schema_file,
  2677. channels=3,
  2678. x_in=7,
  2679. y_in=7,
  2680. stride_x=1,
  2681. stride_y=1,
  2682. w_x=3,
  2683. w_y=3,
  2684. pad=False,
  2685. randmin=TestSettings.INT16_MIN,
  2686. randmax=TestSettings.INT16_MAX,
  2687. out_activation_min=-30000,
  2688. out_activation_max=30000,
  2689. int16xint8=True,
  2690. interpreter=interpreter)
  2691. type_of_test = 'softmax'
  2692. dataset = 'softmax'
  2693. testdata_sets[dataset] = SoftmaxSettings(dataset,
  2694. type_of_test,
  2695. regenerate_weights,
  2696. regenerate_input,
  2697. regenerate_biases,
  2698. schema_file,
  2699. x_in=5,
  2700. y_in=2,
  2701. interpreter=interpreter)
  2702. dataset = 'softmax_s16'
  2703. testdata_sets[dataset] = SoftmaxSettings(dataset,
  2704. type_of_test,
  2705. regenerate_weights,
  2706. regenerate_input,
  2707. regenerate_biases,
  2708. schema_file,
  2709. x_in=10,
  2710. y_in=3,
  2711. int16xint8=True,
  2712. randmin=TestSettings.INT16_MIN,
  2713. randmax=TestSettings.INT16_MAX,
  2714. interpreter=interpreter)
  2715. dataset = 'softmax_s8_s16'
  2716. testdata_sets[dataset] = SoftmaxSettings(dataset,
  2717. type_of_test,
  2718. regenerate_weights,
  2719. regenerate_input,
  2720. regenerate_biases,
  2721. schema_file,
  2722. x_in=12,
  2723. y_in=2,
  2724. inInt8outInt16=True,
  2725. interpreter=interpreter)
  2726. type_of_test = 'svdf'
  2727. dataset = 'svdf'
  2728. testdata_sets[dataset] = SVDFSettings(dataset,
  2729. type_of_test,
  2730. regenerate_weights,
  2731. regenerate_input,
  2732. regenerate_biases,
  2733. schema_file,
  2734. batches=2,
  2735. number_inputs=2,
  2736. rank=8,
  2737. memory_size=8,
  2738. input_size=3,
  2739. number_units=3,
  2740. interpreter=interpreter)
  2741. dataset = 'svdf_1'
  2742. testdata_sets[dataset] = SVDFSettings(dataset,
  2743. type_of_test,
  2744. regenerate_weights,
  2745. regenerate_input,
  2746. regenerate_biases,
  2747. schema_file,
  2748. batches=3,
  2749. number_inputs=2,
  2750. rank=1,
  2751. memory_size=2,
  2752. input_size=7,
  2753. number_units=5,
  2754. interpreter=interpreter)
  2755. dataset = 'svdf_2'
  2756. testdata_sets[dataset] = SVDFSettings(dataset,
  2757. type_of_test,
  2758. regenerate_weights,
  2759. regenerate_input,
  2760. regenerate_biases,
  2761. schema_file,
  2762. batches=3,
  2763. number_inputs=2,
  2764. rank=2,
  2765. memory_size=2,
  2766. input_size=7,
  2767. number_units=5,
  2768. generate_bias=False,
  2769. interpreter=interpreter)
  2770. dataset = 'svdf_3'
  2771. testdata_sets[dataset] = SVDFSettings(dataset,
  2772. type_of_test,
  2773. regenerate_weights,
  2774. regenerate_input,
  2775. regenerate_biases,
  2776. schema_file,
  2777. batches=1,
  2778. number_inputs=2,
  2779. rank=1,
  2780. memory_size=2,
  2781. input_size=20,
  2782. number_units=12,
  2783. generate_bias=False,
  2784. interpreter=interpreter)
  2785. dataset = 'svdf_int8'
  2786. testdata_sets[dataset] = SVDFSettings(dataset,
  2787. type_of_test,
  2788. regenerate_weights,
  2789. regenerate_input,
  2790. regenerate_biases,
  2791. schema_file,
  2792. batches=1,
  2793. number_inputs=2,
  2794. rank=1,
  2795. memory_size=2,
  2796. input_size=20,
  2797. number_units=12,
  2798. generate_bias=False,
  2799. int8_time_weights=True,
  2800. interpreter=interpreter)
  2801. dataset = 'svdf_int8_2'
  2802. testdata_sets[dataset] = SVDFSettings(dataset,
  2803. type_of_test,
  2804. regenerate_weights,
  2805. regenerate_input,
  2806. regenerate_biases,
  2807. schema_file,
  2808. batches=2,
  2809. number_inputs=3,
  2810. rank=2,
  2811. memory_size=3,
  2812. input_size=40,
  2813. number_units=13,
  2814. input_zp=-12,
  2815. int8_time_weights=True,
  2816. interpreter=interpreter)
  2817. type_of_test = 'add'
  2818. dataset = 'add'
  2819. testdata_sets[dataset] = AddMulSettings(dataset,
  2820. type_of_test,
  2821. regenerate_weights,
  2822. regenerate_input,
  2823. regenerate_biases,
  2824. schema_file,
  2825. channels=8,
  2826. x_in=4,
  2827. y_in=4,
  2828. randmin=TestSettings.INT8_MIN,
  2829. randmax=TestSettings.INT8_MAX,
  2830. interpreter=interpreter)
  2831. dataset = 'add_s16'
  2832. testdata_sets[dataset] = AddMulSettings(dataset,
  2833. type_of_test,
  2834. regenerate_weights,
  2835. regenerate_input,
  2836. regenerate_biases,
  2837. schema_file,
  2838. channels=8,
  2839. x_in=4,
  2840. y_in=4,
  2841. randmin=TestSettings.INT16_MIN,
  2842. randmax=TestSettings.INT16_MAX,
  2843. out_activation_min=TestSettings.INT16_MIN,
  2844. out_activation_max=TestSettings.INT16_MAX,
  2845. int16xint8=True,
  2846. interpreter=interpreter)
  2847. dataset = 'add_s16_spill'
  2848. testdata_sets[dataset] = AddMulSettings(dataset,
  2849. type_of_test,
  2850. regenerate_weights,
  2851. regenerate_input,
  2852. regenerate_biases,
  2853. schema_file,
  2854. channels=7,
  2855. x_in=5,
  2856. y_in=3,
  2857. randmin=TestSettings.INT16_MIN,
  2858. randmax=TestSettings.INT16_MAX,
  2859. out_activation_min=-2000,
  2860. out_activation_max=TestSettings.INT16_MAX,
  2861. int16xint8=True,
  2862. interpreter=interpreter)
  2863. type_of_test = 'mul'
  2864. dataset = 'mul'
  2865. testdata_sets[dataset] = AddMulSettings(dataset,
  2866. type_of_test,
  2867. regenerate_weights,
  2868. regenerate_input,
  2869. regenerate_biases,
  2870. schema_file,
  2871. channels=8,
  2872. x_in=4,
  2873. y_in=5,
  2874. randmin=TestSettings.INT8_MIN,
  2875. randmax=TestSettings.INT8_MAX,
  2876. interpreter=interpreter)
  2877. dataset = 'mul_s16'
  2878. testdata_sets[dataset] = AddMulSettings(dataset,
  2879. type_of_test,
  2880. regenerate_weights,
  2881. regenerate_input,
  2882. regenerate_biases,
  2883. schema_file,
  2884. channels=8,
  2885. x_in=5,
  2886. y_in=4,
  2887. randmin=TestSettings.INT16_MIN,
  2888. randmax=TestSettings.INT16_MAX,
  2889. out_activation_min=TestSettings.INT16_MIN,
  2890. out_activation_max=TestSettings.INT16_MAX,
  2891. int16xint8=True,
  2892. interpreter=interpreter)
  2893. dataset = 'mul_s16_spill'
  2894. testdata_sets[dataset] = AddMulSettings(dataset,
  2895. type_of_test,
  2896. regenerate_weights,
  2897. regenerate_input,
  2898. regenerate_biases,
  2899. schema_file,
  2900. channels=7,
  2901. x_in=5,
  2902. y_in=7,
  2903. randmin=TestSettings.INT16_MIN,
  2904. randmax=TestSettings.INT16_MAX,
  2905. out_activation_min=TestSettings.INT16_MIN,
  2906. out_activation_max=1000,
  2907. int16xint8=True,
  2908. interpreter=interpreter)
  2909. type_of_test = 'lstm'
  2910. dataset = 'lstm_1'
  2911. testdata_sets[dataset] = LSTMSettings(dataset,
  2912. type_of_test,
  2913. regenerate_weights,
  2914. regenerate_input,
  2915. regenerate_biases,
  2916. schema_file,
  2917. batches=1,
  2918. time_steps=10,
  2919. number_inputs=22,
  2920. number_units=11,
  2921. time_major=True,
  2922. interpreter=interpreter)
  2923. dataset = 'lstm_2'
  2924. testdata_sets[dataset] = LSTMSettings(dataset,
  2925. type_of_test,
  2926. regenerate_weights,
  2927. regenerate_input,
  2928. regenerate_biases,
  2929. schema_file,
  2930. batches=1,
  2931. time_steps=9,
  2932. number_inputs=6,
  2933. number_units=7,
  2934. time_major=False,
  2935. interpreter=interpreter)
  2936. dataset = 'lstm_one_time_step'
  2937. testdata_sets[dataset] = LSTMSettings(dataset,
  2938. type_of_test,
  2939. regenerate_weights,
  2940. regenerate_input,
  2941. regenerate_biases,
  2942. schema_file,
  2943. batches=3,
  2944. time_steps=1,
  2945. number_inputs=22,
  2946. number_units=3,
  2947. time_major=False,
  2948. interpreter=interpreter)
  2949. return testdata_sets
  2950. def main():
  2951. if version.parse(tf.__version__) < TestSettings.REQUIRED_MINIMUM_TENSORFLOW_VERSION:
  2952. print("Unsupported tensorflow version, ", version.parse(tf.__version__))
  2953. return 1
  2954. args = parse_args()
  2955. testdataset = args.dataset
  2956. test_type = args.testtype
  2957. schema_file = args.schema_file
  2958. regenerate_input = args.regenerate_input
  2959. regenerate_weights = args.regenerate_weights
  2960. regenerate_biases = args.regenerate_biases
  2961. if args.regenerate_all:
  2962. regenerate_biases = True
  2963. regenerate_weights = True
  2964. regenerate_input = True
  2965. testdata_sets = load_testdata_sets(regenerate_input,
  2966. regenerate_weights,
  2967. regenerate_biases,
  2968. schema_file,
  2969. args.interpreter)
  2970. if args.run_all_testsets:
  2971. for testset_name, testset_generator in testdata_sets.items():
  2972. if test_type and testset_generator.test_type != test_type:
  2973. continue
  2974. print("Generating testset {}..".format(testset_name))
  2975. testset_generator.generate_data()
  2976. print()
  2977. # Check that all testsets have been loaded.
  2978. found_test_data_sets = []
  2979. directory = 'TestCases/TestData'
  2980. for dir in next(os.walk(directory))[1]:
  2981. found_test_data_sets.append(dir)
  2982. for testset_name in found_test_data_sets:
  2983. if testset_name not in testdata_sets:
  2984. print("WARNING: Testset {} in {} was not loaded".format(testset_name, directory))
  2985. elif testdataset:
  2986. try:
  2987. generator = testdata_sets[testdataset]
  2988. except KeyError:
  2989. print("WARNING: testset {} not in testset list".format(testdataset))
  2990. if test_type == 'conv' or test_type == 'depthwise_conv':
  2991. generator = ConvSettings(testdataset, test_type, True, True, True, schema_file)
  2992. elif test_type == 'fully_connected':
  2993. generator = FullyConnectedSettings(testdataset, test_type, True, True, True, schema_file)
  2994. elif test_type == 'avgpool' or test_type == 'maxpool':
  2995. generator = PoolingSettings(testdataset, test_type, True, True, True, schema_file)
  2996. elif test_type == 'softmax':
  2997. generator = SoftmaxSettings(testdataset, test_type, True, True, True, schema_file)
  2998. elif test_type == 'svdf':
  2999. generator = SVDFSettings(testdataset, test_type, True, True, True, schema_file)
  3000. elif test_type == 'add' or test_type == 'mul':
  3001. generator = AddMulSettings(testdataset, test_type, True, True, True, schema_file)
  3002. elif test_type == 'lstm':
  3003. generator = LSTMSettings(testdataset, test_type, True, True, True, schema_file)
  3004. else:
  3005. raise RuntimeError("Please specify type of test with -t")
  3006. generator.generate_data()
  3007. else:
  3008. raise RuntimeError("Please select testdataset or use --run-all-testsets")
  3009. return 0
  3010. if __name__ == '__main__':
  3011. sys.exit(main())