armnn-metadata.json 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470
  1. [
  2. {
  3. "name": "InputLayer",
  4. "schema": {
  5. "bindings": [
  6. { "name": "layerBindingId", "type": "int", "src": "layerBindingId" }
  7. ]
  8. }
  9. },
  10. {
  11. "name": "OutputLayer",
  12. "schema": {
  13. "category": "Tensor",
  14. "bindings": [
  15. { "name": "layerBindingId", "type": "int", "src": "layerBindingId" }
  16. ]
  17. }
  18. },
  19. {
  20. "name": "Pooling2dLayer",
  21. "schema": {
  22. "category": "Pool",
  23. "attributes": [
  24. { "name": "type", "type": "string", "src": "poolType", "src_type": "PoolingAlgorithm"},
  25. { "name": "padding", "type": "string", "src": ["padTop", "padRight", "padBottom", "padLeft"] },
  26. { "name": "width", "type": "string", "src": "poolWidth" },
  27. { "name": "height", "type": "string", "src": "poolHeight" },
  28. { "name": "stride", "type": "string", "src": ["strideX", "strideY"] },
  29. { "name": "outputShapeRounding", "type": "string", "src": "outputShapeRounding", "src_type": "OutputShapeRounding"},
  30. { "name": "paddingMethod", "type": "string", "src": "paddingMethod", "src_type": "PaddingMethod"},
  31. { "name": "dataLayout", "type": "string", "src": "dataLayout", "src_type": "DataLayout" }
  32. ]
  33. }
  34. },
  35. {
  36. "name": "ReshapeLayer",
  37. "schema": {
  38. "category": "Shape",
  39. "attributes": [
  40. { "name": "targetShape", "type": "string", "src": "targetShape" }
  41. ]
  42. }
  43. },
  44. {
  45. "name": "SoftmaxLayer",
  46. "schema": {
  47. "category": "Activation",
  48. "attributes": [
  49. { "name": "beta", "type": "float", "src": "beta" }
  50. ]
  51. }
  52. },
  53. {
  54. "name": "Convolution2dLayer",
  55. "schema": {
  56. "category": "Layer",
  57. "inputs": [
  58. { "name": "weight", "src": "weights" },
  59. { "name": "bias", "src": "biases" }
  60. ],
  61. "attributes": [
  62. { "name": "padding", "type": "string", "src": ["padTop", "padRight", "padBottom", "padLeft"] },
  63. { "name": "stride", "type": "string", "src": ["strideX", "strideY"] },
  64. { "name": "dilation", "type": "string", "src": ["dilationX", "dilationY"] },
  65. { "name": "dataLayout", "type": "string", "src": "dataLayout", "src_type": "DataLayout" }
  66. ]
  67. }
  68. },
  69. {
  70. "name": "DepthwiseConvolution2dLayer",
  71. "schema": {
  72. "category": "Layer",
  73. "inputs": [
  74. { "name": "weight", "src": "weights" },
  75. { "name": "bias", "src": "biases" }
  76. ],
  77. "attributes": [
  78. { "name": "padding", "type": "string", "src": ["padTop", "padRight", "padBottom", "padLeft"] },
  79. { "name": "stride", "type": "string", "src": ["strideX", "strideY"] },
  80. { "name": "dilation", "type": "string", "src": ["dilationX", "dilationY"] },
  81. { "name": "dataLayout", "type": "string", "src": "dataLayout", "src_type": "DataLayout" }
  82. ]
  83. }
  84. },
  85. {
  86. "name": "ActivationLayer",
  87. "schema": {
  88. "category": "Activation",
  89. "attributes": [
  90. { "name": "function", "type": "string", "src": "activationFunction", "src_type": "ActivationFunction" },
  91. { "name": "a", "type": "float", "src": "a" },
  92. { "name": "b", "type": "float", "src": "b" }
  93. ]
  94. }
  95. },
  96. {
  97. "name": "PermuteLayer",
  98. "schema": {
  99. "category": "Shape",
  100. "attributes": [
  101. { "name": "dimMappings", "type": "string", "src": "dimMappings" }
  102. ]
  103. }
  104. },
  105. {
  106. "name": "FullyConnectedLayer",
  107. "schema": {
  108. "category": "Layer",
  109. "inputs": [
  110. { "name": "weights", "src": "weights" },
  111. { "name": "biases", "src": "biases" }
  112. ],
  113. "attributes": [
  114. { "name": "transposeWeightsMatrix", "type": "bool", "src": "transposeWeightsMatrix" }
  115. ]
  116. }
  117. },
  118. {
  119. "name": "ConstantLayer",
  120. "schema": {
  121. "category": "Constant",
  122. "inputs": [
  123. { "name": "input", "src": "input" }
  124. ]
  125. }
  126. },
  127. {
  128. "name": "SpaceToBatchNdLayer",
  129. "schema": {
  130. "category": "Layer",
  131. "attributes": [
  132. { "name": "blockShape", "type": "string", "src": "blockShape" },
  133. { "name": "padList", "type": "string", "src": "padList" },
  134. { "name": "dataLayout", "type": "string", "src": "dataLayout", "src_type": "DataLayout" }
  135. ]
  136. }
  137. },
  138. {
  139. "name": "BatchToSpaceNdLayer",
  140. "schema": {
  141. "category": "Layer",
  142. "attributes": [
  143. { "name": "blockShape", "type": "string", "src": "blockShape" },
  144. { "name": "crops", "type": "string", "src": "crops" },
  145. { "name": "dataLayout", "type": "string", "src": "dataLayout", "src_type": "DataLayout" }
  146. ]
  147. }
  148. },
  149. {
  150. "name": "DivisionLayer",
  151. "schema": {
  152. "category": "Layer"
  153. }
  154. },
  155. {
  156. "name": "MinimumLayer",
  157. "schema": {
  158. "category": "Layer"
  159. }
  160. },
  161. {
  162. "name": "EqualLayer",
  163. "schema": {
  164. "category": "Layer"
  165. }
  166. },
  167. {
  168. "name": "MaximumLayer",
  169. "schema": {
  170. "category": "Layer"
  171. }
  172. },
  173. {
  174. "name": "NormalizationLayer",
  175. "schema": {
  176. "category": "Normalization",
  177. "attributes": [
  178. { "name": "normChannelType", "type": "string", "src": "normChannelType", "src_type": "NormalizationAlgorithmChannel" },
  179. { "name": "normMethodType", "type": "string", "src": "normMethodType", "src_type": "NormalizationAlgorithmMethod" },
  180. { "name": "normSize", "type": "uint", "src": "normSize" },
  181. { "name": "alpha", "type": "float", "src": "alpha" },
  182. { "name": "beta", "type": "float", "src": "beta" },
  183. { "name": "k", "type": "float", "src": "k" },
  184. { "name": "dataLayout", "type": "string", "src": "dataLayout", "src_type": "DataLayout" }
  185. ]
  186. }
  187. },
  188. {
  189. "name": "PadLayer",
  190. "schema": {
  191. "category": "Layer",
  192. "attributes": [
  193. { "name": "padList", "type": "uint", "src": "padList" },
  194. { "name": "padValue", "type": "float", "src": "padValue" }
  195. ]
  196. }
  197. },
  198. {
  199. "name": "RsqrtLayer",
  200. "schema": {
  201. "category": "Layer"
  202. }
  203. },
  204. {
  205. "name": "FloorLayer",
  206. "schema": {
  207. "category": "Layer"
  208. }
  209. },
  210. {
  211. "name": "BatchNormalizationLayer",
  212. "schema": {
  213. "category": "Normalization",
  214. "inputs": [
  215. { "name": "mean", "src": "mean" },
  216. { "name": "variance", "src": "variance" },
  217. { "name": "beta", "src": "beta" },
  218. { "name": "gamma", "src": "gamma" }
  219. ],
  220. "attributes": [
  221. { "name": "eps", "type": "float", "src": "eps" },
  222. { "name": "dataLayout", "type": "string", "src": "dataLayout", "src_type": "DataLayout" }
  223. ]
  224. }
  225. },
  226. {
  227. "name": "GreaterLayer",
  228. "schema": {
  229. "category": "Layer",
  230. "attributes": [
  231. ]
  232. }
  233. },
  234. {
  235. "name": "ResizeBilinearLayer",
  236. "schema": {
  237. "category": "Layer",
  238. "attributes": [
  239. { "name": "targetWidth", "type": "uint", "src": "targetWidth" },
  240. { "name": "targetHeight", "type": "uint", "src": "targetHeight" },
  241. { "name": "dataLayout", "type": "string", "src": "dataLayout", "src_type": "DataLayout" }
  242. ]
  243. }
  244. },
  245. {
  246. "name": "SubtractionLayer",
  247. "schema": {
  248. }
  249. },
  250. {
  251. "name": "StridedSliceLayer",
  252. "schema": {
  253. "category": "Tensor",
  254. "attributes": [
  255. { "name": "begin", "type": "int", "src": "begin" },
  256. { "name": "end", "type": "int", "src": "end" },
  257. { "name": "stride", "type": "int", "src": "stride" },
  258. { "name": "beginMask", "type": "int", "src": "beginMask" },
  259. { "name": "endMask", "type": "int", "src": "endMask" },
  260. { "name": "shrinkAxisMask", "type": "int", "src": "shrinkAxisMask" },
  261. { "name": "ellipsisMask", "type": "int", "src": "ellipsisMask" },
  262. { "name": "newAxisMask", "type": "int", "src": "newAxisMask" },
  263. { "name": "dataLayout", "type": "string", "src": "dataLayout", "src_type": "DataLayout" }
  264. ]
  265. }
  266. },
  267. {
  268. "name": "GatherLayer",
  269. "schema": {
  270. "category": "Tensor"
  271. }
  272. },
  273. {
  274. "name": "MeanLayer",
  275. "schema": {
  276. "attributes": [
  277. { "name": "axis", "type": "uint", "src": "axis" },
  278. { "name": "keepDims", "type": "bool", "src": "keepDims" }
  279. ]
  280. }
  281. },
  282. {
  283. "name": "MergerLayer",
  284. "schema": {
  285. "category": "Tensor"
  286. }
  287. },
  288. {
  289. "name": "L2NormalizationLayer",
  290. "schema": {
  291. "category": "Normalization",
  292. "attributes": [
  293. { "name": "eps", "type": "float", "src": "eps" },
  294. { "name": "dataLayout", "type": "string", "src": "dataLayout", "src_type": "DataLayout" }
  295. ]
  296. }
  297. },
  298. {
  299. "name": "SplitterLayer",
  300. "schema": {
  301. "category": "Tensor",
  302. "attributes": [
  303. { "name": "concatAxis", "type": "uint", "src": "concatAxis" },
  304. { "name": "numViews", "type": "uint", "src": "numViewes" },
  305. { "name": "numDimensions", "type": "uint", "src": "numDimensions" }
  306. ]
  307. }
  308. },
  309. {
  310. "name": "DetectionPostProcessLayer",
  311. "schema": {
  312. "category": "Custom",
  313. "attributes": [
  314. { "name": "maxDetections", "type": "uint", "src": "maxDetections" },
  315. { "name": "maxClassesPerDetection", "type": "uint", "src": "maxClassesPerDetection" },
  316. { "name": "detectionsPerClass", "type": "uint", "src": "detectionsPerClass" },
  317. { "name": "nmsScoreThreshold", "type": "float", "src": "nmsScoreThreshold" },
  318. { "name": "numIouThreshold", "type": "float", "src": "nmsIouThreshold" },
  319. { "name": "numClasses", "type": "uint", "src": "numClasses" },
  320. { "name": "useRegularNms", "type": "bool", "src": "useRegularNms" },
  321. { "name": "scaleX", "type": "float", "src": "scaleX" },
  322. { "name": "scaleY", "type": "float", "src": "scaleY" },
  323. { "name": "scaleW", "type": "float", "src": "scaleW" },
  324. { "name": "scaleH", "type": "float", "src": "scaleH" }
  325. ]
  326. }
  327. },
  328. {
  329. "name": "LstmLayer",
  330. "schema": {
  331. "category": "Layer",
  332. "inputs": [
  333. { "name": "inputToForgetWeights1", "src": "inputToForgetWeights1" },
  334. { "name": "inputToCellWeights1", "src": "inputToCellWeights1" },
  335. { "name": "inputToOutputWeights1", "src": "inputToOutputWeights1" },
  336. { "name": "recurrentToForgetWeights1", "src": "recurrentToForgetWeights1" },
  337. { "name": "recurrentToCellWeights1", "src": "recurrentToCellWeights1" },
  338. { "name": "recurrentToOutputWeights1", "src": "recurrentToOutputWeights1" },
  339. { "name": "forgetGateBias1", "src": "forgetGateBias1" },
  340. { "name": "cellBias1", "src": "cellBias1" },
  341. { "name": "outputGateBias1", "src": "outputGateBias1" },
  342. { "name": "inputToInputWeights1", "src": "inputToInputWeights1" },
  343. { "name": "recurrentToInputWeights1", "src": "recurrentToInputWeights1" },
  344. { "name": "cellToInputWeights1", "src": "cellToInputWeights1" },
  345. { "name": "inputGateBias1", "src": "inputGateBias1" },
  346. { "name": "projectionWeights1", "src": "projectionWeights1" },
  347. { "name": "projectionBias1", "src": "projectionBias1" },
  348. { "name": "cellToForgetWeights1", "src": "cellToForgetWeights1" },
  349. { "name": "cellToOutputWeights1", "src": "cellToOutputWeights1" },
  350. { "name": "inputLayerNormWeights1", "src": "inputLayerNormWeights1" },
  351. { "name": "forgetLayerNormWeights1", "src": "forgetLayerNormWeights1" },
  352. { "name": "cellLayerNormWeights1", "src": "cellLayerNormWeights1" },
  353. { "name": "outputLayerNormWeights1", "src": "outputLayerNormWeights1" }
  354. ],
  355. "attributes": [
  356. { "name": "activationFunc", "type": "uint", "src": "activationFunc" },
  357. { "name": "clippingThresCell", "type": "float", "src": "clippingThresCell" },
  358. { "name": "clippingThresProj", "type": "float", "src": "clippingThresProj" },
  359. { "name": "cifgEnabled", "type": "bool", "src": "cifgEnabled" },
  360. { "name": "peepholeEnabled", "type": "bool", "src": "peepholeEnabled" },
  361. { "name": "projectionEnabled", "type": "bool", "src": "projectionEnabled" },
  362. { "name": "layerNormEnabled", "type": "bool", "src": "layerNormEnabled" }
  363. ]
  364. }
  365. },
  366. {
  367. "name": "QuantizeLayer"
  368. },
  369. {
  370. "name": "DequantizeLayer"
  371. },
  372. {
  373. "name": "MergeLayer",
  374. "schema": {
  375. "category": "Layer"
  376. }
  377. },
  378. {
  379. "name": "SwitchLayer",
  380. "schema": {
  381. "category": "Layer"
  382. }
  383. },
  384. {
  385. "name": "ConcatLayer",
  386. "schema": {
  387. "category": "Tensor",
  388. "attributes": [
  389. { "name": "concatAxis", "type": "uint", "src": "concatAxis" },
  390. { "name": "numViews", "type": "uint", "src": "numViewes" },
  391. { "name": "numDimensions", "type": "uint", "src": "numDimensions" }
  392. ]
  393. }
  394. },
  395. {
  396. "name": "SpaceToDepthLayer",
  397. "schema": {
  398. "category": "Layer",
  399. "attributes": [
  400. { "name": "blockSize", "type": "uint", "src": "blockSize" },
  401. { "name": "dataLayout", "type": "string", "src": "dataLayout", "src_type": "DataLayout" }
  402. ]
  403. }
  404. },
  405. {
  406. "name": "PreluLayer",
  407. "schema": {
  408. "category": "Layer"
  409. }
  410. },
  411. {
  412. "name": "TransposeConvolution2dLayer",
  413. "schema": {
  414. "category": "Layer",
  415. "inputs": [
  416. { "name": "weight", "src": "weights" },
  417. { "name": "bias", "src": "biases" }
  418. ],
  419. "attributes": [
  420. { "name": "padding", "type": "string", "src": ["padTop", "padRight", "padBottom", "padLeft"] },
  421. { "name": "stride", "type": "string", "src": ["strideX", "strideY"] },
  422. { "name": "dataLayout", "type": "string", "src": "dataLayout", "src_type": "DataLayout" }
  423. ]
  424. }
  425. },
  426. {
  427. "name": "ResizeLayer",
  428. "schema": {
  429. "category": "Layer",
  430. "attributes": [
  431. { "name": "targetWidth", "type": "uint", "src": "targetWidth" },
  432. { "name": "targetHeight", "type": "uint", "src": "targetHeight" },
  433. { "name": "method", "type": "string", "src": "method", "src_type": "ResizeMethod" },
  434. { "name": "dataLayout", "type": "string", "src": "dataLayout", "src_type": "DataLayout" }
  435. ]
  436. }
  437. },
  438. {
  439. "name": "StackLayer",
  440. "schema": {
  441. "category": "Layer",
  442. "attributes": [
  443. { "name": "axis", "type": "uint", "src": "axis" },
  444. { "name": "numInputs", "type": "uint", "src": "numInputs" },
  445. { "name": "inputShape", "type": "uint", "src": "inputShape" }
  446. ]
  447. }
  448. },
  449. {
  450. "name": "QuantizedLstmLayer",
  451. "schema": {
  452. "category": "Layer",
  453. "inputs": [
  454. { "name": "inputToInputWeights1", "src": "inputToInputWeights1" },
  455. { "name": "inputToForgetWeights1", "src": "inputToForgetWeights1" },
  456. { "name": "inputToCellWeights1", "src": "inputToCellWeights1" },
  457. { "name": "inputToOutputWeights1", "src": "inputToOutputWeights1" },
  458. { "name": "recurrentToInputWeights1", "src": "recurrentToInputWeights1" },
  459. { "name": "recurrentToForgetWeights1", "src": "recurrentToForgetWeights1" },
  460. { "name": "recurrentToCellWeights1", "src": "recurrentToCellWeights1" },
  461. { "name": "recurrentToOutputWeights1", "src": "recurrentToOutputWeights1" },
  462. { "name": "inputGateBias1", "src": "inputGateBias1" },
  463. { "name": "forgetGateBias1", "src": "forgetGateBias1" },
  464. { "name": "cellBias1", "src": "cellBias1" },
  465. { "name": "outputGateBias1", "src": "outputGateBias1" }
  466. ]
  467. }
  468. }
  469. ]