coreml-metadata.json 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513
  1. [
  2. {
  3. "name": "convolution",
  4. "schema": {
  5. "category": "Layer",
  6. "description": "A layer that performs spatial convolution or deconvolution.",
  7. "attributes": [
  8. { "name": "outputShape", "type": "uint64[]", "description": "Either None or a 2-tuple, specifying the output shape (output_height, output_width). Used only when is_deconv == True. When is_deconv == False, this parameter is ignored. If it is None, the output shape is calculated automatically using the border_mode. Kindly refer to NeuralNetwork.proto for details.", "visible": false },
  9. { "name": "outputChannels", "type": "uint64", "description": "The number of kernels. Same as ``C_out`` used in the layer description.", "visible": false },
  10. { "name": "kernelChannels", "type": "uint64", "description": "Channel dimension of the kernels. Must be equal to ``inputChannels / nGroups``, if isDeconvolution == False. Must be equal to ``inputChannels``, if isDeconvolution == True.", "visible": false },
  11. { "name": "nGroups", "type": "uint64", "description": "Group convolution, i.e. weight reuse along channel axis. Input and kernels are divided into g groups and convolution / deconvolution is applied within the groups independently. If not set or 0, it is set to the default value 1.", "default": 1 },
  12. { "name": "isDeconvolution", "type": "boolean", "description": "Flag to specify whether it is a deconvolution layer." },
  13. { "name": "valid", "type": "ValidPadding", "visible": false },
  14. { "name": "same", "type": "SamePadding", "visible": false },
  15. { "name": "dilationFactor", "type": "uint64[]", "default": [ 1, 1 ] },
  16. { "name": "stride", "type": "uint64[]", "default": [ 1, 1 ] },
  17. { "name": "kernelSize", "type": "uint64[]", "default": [ 3, 3 ] },
  18. { "name": "hasBias", "type": "boolean", "description": "Flag to specify whether a bias is to be added or not.", "visible": false }
  19. ]
  20. }
  21. },
  22. {
  23. "name": "innerProduct",
  24. "schema": {
  25. "category": "Layer",
  26. "description": "A layer that performs a matrix vector product. This is equivalent to a fully-connected, or dense layer.",
  27. "attributes": [
  28. { "name": "inputChannels", "type": "uint64", "visible": false },
  29. { "name": "outputChannels", "type": "uint64", "visible": false },
  30. { "name": "hasBias", "type": "boolean", "visible": false }
  31. ]
  32. }
  33. },
  34. {
  35. "name": "gru",
  36. "schema": {
  37. "category": "Layer",
  38. "description": "Gated-Recurrent Unit (GRU) Layer",
  39. "inputs": [
  40. { "name": "input" },
  41. { "name": "h" },
  42. { "name": "updateGateWeightMatrix", "visible": false },
  43. { "name": "resetGateWeightMatrix", "visible": false },
  44. { "name": "outputGateWeightMatrix", "visible": false },
  45. { "name": "updateGateRecursionMatrix", "visible": false },
  46. { "name": "resetGateRecursionMatrix", "visible": false },
  47. { "name": "outputGateRecursionMatrix", "visible": false },
  48. { "name": "updateGateBiasVector", "visible": false },
  49. { "name": "resetGateBiasVector", "visible": false },
  50. { "name": "outputGateBiasVector", "visible": false }
  51. ],
  52. "outputs": [
  53. { "name": "output" },
  54. { "name": "h" }
  55. ]
  56. }
  57. },
  58. {
  59. "name": "uniDirectionalLSTM",
  60. "schema": {
  61. "category": "Layer",
  62. "description": "A unidirectional long short-term memory (LSTM) layer.",
  63. "inputs": [
  64. { "name": "input" },
  65. { "name": "h" },
  66. { "name": "c" },
  67. { "name": "inputGateWeightMatrix", "visible": false },
  68. { "name": "forgetGateWeightMatrix", "visible": false },
  69. { "name": "blockInputWeightMatrix", "visible": false },
  70. { "name": "outputGateWeightMatrix", "visible": false },
  71. { "name": "inputGateRecursionMatrix", "visible": false },
  72. { "name": "forgetGateRecursionMatrix", "visible": false },
  73. { "name": "blockInputRecursionMatrix", "visible": false },
  74. { "name": "outputGateRecursionMatrix", "visible": false },
  75. { "name": "inputGateBiasVector", "visible": false },
  76. { "name": "forgetGateBiasVector", "visible": false },
  77. { "name": "blockInputBiasVector", "visible": false },
  78. { "name": "outputGateBiasVector", "visible": false }
  79. ],
  80. "outputs": [
  81. { "name": "output" },
  82. { "name": "h" },
  83. { "name": "c" }
  84. ]
  85. }
  86. },
  87. {
  88. "name": "biDirectionalLSTM",
  89. "schema": {
  90. "category": "Layer",
  91. "description": "Bidirectional long short-term memory (LSTM) layer. The first LSTM operates on the input sequence in the forward direction. The second LSTM operates on the input sequence in the reverse direction.",
  92. "inputs": [
  93. { "name": "input" },
  94. { "name": "h" },
  95. { "name": "c" },
  96. { "name": "h_rev" },
  97. { "name": "c_rev" },
  98. { "name": "inputGateWeightMatrix", "visible": false },
  99. { "name": "forgetGateWeightMatrix", "visible": false },
  100. { "name": "blockInputWeightMatrix", "visible": false },
  101. { "name": "outputGateWeightMatrix", "visible": false },
  102. { "name": "inputGateRecursionMatrix", "visible": false },
  103. { "name": "forgetGateRecursionMatrix", "visible": false },
  104. { "name": "blockInputRecursionMatrix", "visible": false },
  105. { "name": "outputGateRecursionMatrix", "visible": false },
  106. { "name": "inputGateBiasVector", "visible": false },
  107. { "name": "forgetGateBiasVector", "visible": false },
  108. { "name": "blockInputBiasVector", "visible": false },
  109. { "name": "outputGateBiasVector", "visible": false },
  110. { "name": "inputGateWeightMatrix_rev", "visible": false },
  111. { "name": "forgetGateWeightMatrix_rev", "visible": false },
  112. { "name": "blockInputWeightMatrix_rev", "visible": false },
  113. { "name": "outputGateWeightMatrix_rev", "visible": false },
  114. { "name": "inputGateRecursionMatrix_rev", "visible": false },
  115. { "name": "forgetGateRecursionMatrix_rev", "visible": false },
  116. { "name": "blockInputRecursionMatrix_rev", "visible": false },
  117. { "name": "outputGateRecursionMatrix_rev", "visible": false },
  118. { "name": "inputGateBiasVector_rev", "visible": false },
  119. { "name": "forgetGateBiasVector_rev", "visible": false },
  120. { "name": "blockInputBiasVector_rev", "visible": false },
  121. { "name": "outputGateBiasVector_rev", "visible": false }
  122. ],
  123. "outputs": [
  124. { "name": "output" },
  125. { "name": "h" },
  126. { "name": "c" },
  127. { "name": "h_rev" },
  128. { "name": "c_rev" }
  129. ]
  130. }
  131. },
  132. {
  133. "name": "bias",
  134. "schema": {
  135. "category": "Layer",
  136. "description": "A layer that performs elementwise addition of a bias, which is broadcasted to match the input shape."
  137. }
  138. },
  139. {
  140. "name": "activation",
  141. "schema": {
  142. "category": "Activation",
  143. "description": "Applies specified type of activation function to input."
  144. }
  145. },
  146. {
  147. "name": "softmax",
  148. "schema": {
  149. "category": "Activation",
  150. "description": "A layer that performs softmax normalization. Normalization is done along the channel axis."
  151. }
  152. },
  153. {
  154. "name": "batchnorm",
  155. "schema": {
  156. "category": "Normalization",
  157. "description": "A layer that performs batch normalization, which is performed along the channel axis, and repeated along the other axes, if present.",
  158. "attributes": [
  159. { "name": "epsilon", "default": 0.000009999999747378752 },
  160. { "name": "computeMeanVar", "visible": false },
  161. { "name": "instanceNormalization", "visible": false }
  162. ]
  163. }
  164. },
  165. {
  166. "name": "l2normalize",
  167. "schema": {
  168. "category": "Normalization",
  169. "description": "A layer that performs L2 normalization, i.e. divides by the the square root of the sum of squares of all elements of input."
  170. }
  171. },
  172. {
  173. "name": "lrn",
  174. "schema": {
  175. "category": "Normalization",
  176. "description": "A layer that performs local response normalization (LRN).",
  177. "attributes": [
  178. { "name": "k", "default": 1 }
  179. ]
  180. }
  181. },
  182. {
  183. "name": "pooling",
  184. "schema": {
  185. "category": "Pool",
  186. "description": "Spatial Pooling layer to reduce dimensions of input using the specified kernel size and type.",
  187. "attributes": [
  188. { "name": "includeLastPixel", "type": "ValidCompletePadding", "visible": false },
  189. { "name": "same", "type": "SamePadding", "visible": false },
  190. { "name": "valid", "type": "ValidCompletePadding", "visible": false },
  191. { "name": "type", "type": "PoolingLayerParams.PoolingType" },
  192. { "name": "globalPooling", "type": "boolean", "default": false },
  193. { "name": "stride", "type": "uint64", "default": [ 1, 1 ] },
  194. { "name": "kernelSize", "type": "uint64[]", "default": [ 3, 3 ] },
  195. { "name": "avgPoolExcludePadding", "type": "boolean", "default": false }
  196. ]
  197. }
  198. },
  199. {
  200. "name": "permute",
  201. "schema": {
  202. "category": "Shape",
  203. "description": "A layer that rearranges the dimensions and data of an input."
  204. }
  205. },
  206. {
  207. "name": "reduce",
  208. "schema": {
  209. "description": "A layer that reduces the input using a specified operation."
  210. }
  211. },
  212. {
  213. "name": "gelu",
  214. "schema": {
  215. "category": "Activation",
  216. "description": "Gaussian error linear unit activation.",
  217. "attributes": [
  218. { "name": "mode", "type": "GeluLayerParams.GeluMode" }
  219. ]
  220. }
  221. },
  222. {
  223. "name": "softmaxND",
  224. "schema": {
  225. "category": "Activation",
  226. "description": "A layer that performs softmax normalization along a specified axis."
  227. }
  228. },
  229. {
  230. "name": "flatten",
  231. "schema": {
  232. "category": "Shape",
  233. "description": "A layer that flattens the input.",
  234. "attributes": [
  235. { "name": "mode", "type": "FlattenLayerParams.FlattenOrder" }
  236. ]
  237. }
  238. },
  239. {
  240. "name": "reshape",
  241. "schema": {
  242. "category": "Shape",
  243. "description": "A layer that recasts the input into a new shape."
  244. }
  245. },
  246. {
  247. "name": "reorganizeData",
  248. "schema": {
  249. "category": "Shape",
  250. "description": "A layer that reorganizes data in the input in: 1. SPACE_TO_DEPTH, 2. DEPTH_TO_SPACE."
  251. }
  252. },
  253. {
  254. "name": "padding",
  255. "schema": {
  256. "category": "Shape",
  257. "description": "Fill a constant value in the padded region.",
  258. "attributes": [
  259. { "name": "paddingAmounts", "visible": false }
  260. ]
  261. }
  262. },
  263. {
  264. "name": "crop",
  265. "schema": {
  266. "category": "Data",
  267. "description": "A layer that crops the spatial dimensions of an input. If two inputs are provided, the shape of the second input is used as the reference shape.",
  268. "inputs": [
  269. { "name": "x1" },
  270. { "name": "x2" }
  271. ],
  272. "outputs": [
  273. { "name": "y" }
  274. ]
  275. }
  276. },
  277. {
  278. "name": "sequenceRepeat",
  279. "schema": {
  280. "category": "Shape",
  281. "description": "A layer that repeats a sequence."
  282. }
  283. },
  284. {
  285. "name": "concat",
  286. "schema": {
  287. "category": "Tensor",
  288. "description": "A layer that concatenates along the channel axis (default) or sequence axis.",
  289. "inputs": [
  290. { "name": "inputs", "option": "variadic" }
  291. ]
  292. }
  293. },
  294. {
  295. "name": "add",
  296. "schema": {
  297. "description": "A layer that performs elementwise addition.",
  298. "inputs": [
  299. { "name": "x" },
  300. { "name": "y" }
  301. ],
  302. "outputs": [
  303. { "name": "z" }
  304. ]
  305. }
  306. },
  307. {
  308. "name": "multiply",
  309. "schema": {
  310. "description": "A layer that performs elementwise multiplication.",
  311. "inputs": [
  312. { "name": "x" },
  313. { "name": "y" }
  314. ],
  315. "outputs": [
  316. { "name": "z" }
  317. ]
  318. }
  319. },
  320. {
  321. "name": "max",
  322. "schema": {
  323. "description": "A layer that computes the elementwise maximum over the inputs."
  324. }
  325. },
  326. {
  327. "name": "min",
  328. "schema": {
  329. "description": "A layer that computes the elementwise minimum over the inputs."
  330. }
  331. },
  332. {
  333. "name": "average",
  334. "schema": {
  335. "description": "A layer that computes the elementwise average of the inputs."
  336. }
  337. },
  338. {
  339. "name": "unary",
  340. "schema": {
  341. "description": "A layer that applies a unary function.",
  342. "attributes": [
  343. { "name": "type", "type": "UnaryFunctionLayerParams.Operation" },
  344. { "name": "alpha", "default": 1.0 },
  345. { "name": "scale", "default": 1.0 },
  346. { "name": "epsilon", "default": 9.999999974752427e-7 }
  347. ],
  348. "inputs": [
  349. { "name": "x" }
  350. ],
  351. "outputs": [
  352. { "name": "z" }
  353. ]
  354. }
  355. },
  356. {
  357. "name": "mvn",
  358. "schema": {
  359. "description": "Fill a constant value in the padded region."
  360. }
  361. },
  362. {
  363. "name": "dot",
  364. "schema": {
  365. "description": "If true, inputs are normalized first, thereby computing the cosine similarity."
  366. }
  367. },
  368. {
  369. "name": "scale",
  370. "schema": {
  371. "category": "Layer",
  372. "description": "A layer that performs elmentwise multiplication by a scale factor and optionally adds a bias.",
  373. "attributes": [
  374. { "name": "hasBias", "type": "boolean", "visible": false }
  375. ]
  376. }
  377. },
  378. {
  379. "name": "upsample",
  380. "schema": {
  381. "category": "Data",
  382. "description": "A layer that scales up spatial dimensions. It supports two modes: nearest neighbour (default) and bilinear."
  383. }
  384. },
  385. {
  386. "name": "slice",
  387. "schema": {
  388. "description": "A layer that slices the input data along a given axis."
  389. }
  390. },
  391. {
  392. "name": "slice",
  393. "schema": {
  394. "description": "A layer that uniformly splits across the channel dimension to produce a specified number of outputs."
  395. }
  396. },
  397. {
  398. "name": "embedding",
  399. "schema": {
  400. "category": "Transform",
  401. "description": "A layer that performs a matrix lookup and optionally adds a bias."
  402. }
  403. },
  404. {
  405. "name": "featureVectorizer",
  406. "schema": {
  407. "inputs": [
  408. { "name": "inputs", "option": "variadic" }
  409. ]
  410. }
  411. },
  412. {
  413. "name": "loadConstant",
  414. "schema": {
  415. "category": "Data"
  416. }
  417. },
  418. {
  419. "name": "stringClassLabels",
  420. "schema": {
  421. "category": "Data",
  422. "outputs": [
  423. { "name": "probabilities" },
  424. { "name": "feature" }
  425. ]
  426. }
  427. },
  428. {
  429. "name": "int64ClassLabels",
  430. "schema": {
  431. "category": "Data",
  432. "outputs": [
  433. { "name": "probabilities" },
  434. { "name": "feature" }
  435. ]
  436. }
  437. },
  438. {
  439. "name": "scaler",
  440. "schema": {
  441. "category": "Data"
  442. }
  443. },
  444. {
  445. "name": "wordTagger",
  446. "schema": {
  447. "attributes": [
  448. { "name": "revision", "visible": false }
  449. ],
  450. "outputs": [
  451. { "name": "tokens" },
  452. { "name": "tags" },
  453. { "name": "locations" },
  454. { "name": "lengths" }
  455. ]
  456. }
  457. },
  458. {
  459. "name": "textClassifier",
  460. "schema": {
  461. "attributes": [
  462. { "name": "revision", "visible": false }
  463. ]
  464. }
  465. },
  466. {
  467. "name": "nonMaximumSuppression",
  468. "schema": {
  469. "attributes": [
  470. { "name": "iouThreshold" },
  471. { "name": "confidenceThreshold" }
  472. ],
  473. "inputs": [
  474. { "name": "confidence" },
  475. { "name": "coordinates" },
  476. { "name": "iouThreshold" },
  477. { "name": "confidenceThreshold" }
  478. ],
  479. "outputs": [
  480. { "name": "confidence" },
  481. { "name": "coordinates" }
  482. ]
  483. }
  484. },
  485. {
  486. "name": "squeeze",
  487. "schema": {
  488. "category": "Transform"
  489. }
  490. },
  491. {
  492. "name": "mvn",
  493. "schema": {
  494. "category": "Normalization",
  495. "description": "A layer that performs mean variance normalization, along axis = -3."
  496. }
  497. },
  498. {
  499. "name": "itemSimilarityRecommender",
  500. "schema": {
  501. "inputs": [
  502. { "name": "item" },
  503. { "name": "numRecommendations" },
  504. { "name": "itemRestriction" },
  505. { "name": "itemExclusion" }
  506. ],
  507. "outputs": [
  508. { "name": "recommendedItemList" },
  509. { "name": "recommendedItemScore" }
  510. ]
  511. }
  512. }
  513. ]