dnn-proto.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365
  1. export const dnn = {};
  2. dnn.Model = class Model {
  3. constructor() {
  4. this.input_shape = [];
  5. this.input_name = [];
  6. this.node = [];
  7. this.input = [];
  8. this.output = [];
  9. }
  10. static decode(reader, length) {
  11. const message = new dnn.Model();
  12. const end = length !== undefined ? reader.position + length : reader.length;
  13. while (reader.position < end) {
  14. const tag = reader.uint32();
  15. switch (tag >>> 3) {
  16. case 1:
  17. message.name = reader.string();
  18. break;
  19. case 2:
  20. message.version = reader.int32();
  21. break;
  22. case 4:
  23. message.input_shape = reader.array(message.input_shape, () => reader.int32(), tag);
  24. break;
  25. case 7:
  26. message.input_name.push(reader.string());
  27. break;
  28. case 10:
  29. message.node.push(dnn.Node.decode(reader, reader.uint32()));
  30. break;
  31. case 12:
  32. message.input.push(dnn.Parameter.decode(reader, reader.uint32()));
  33. break;
  34. case 13:
  35. message.output.push(dnn.Parameter.decode(reader, reader.uint32()));
  36. break;
  37. case 14:
  38. message.a014 = reader.double();
  39. break;
  40. default:
  41. reader.skipType(tag & 7);
  42. break;
  43. }
  44. }
  45. return message;
  46. }
  47. };
  48. dnn.Model.prototype.name = "";
  49. dnn.Model.prototype.version = 0;
  50. dnn.Model.prototype.a014 = 0;
  51. dnn.Parameter = class Parameter {
  52. constructor() {
  53. }
  54. static decode(reader, length) {
  55. const message = new dnn.Parameter();
  56. const end = length !== undefined ? reader.position + length : reader.length;
  57. while (reader.position < end) {
  58. const tag = reader.uint32();
  59. switch (tag >>> 3) {
  60. case 1:
  61. message.name = reader.string();
  62. break;
  63. case 2:
  64. message.shape = dnn.Shape.decode(reader, reader.uint32());
  65. break;
  66. default:
  67. reader.skipType(tag & 7);
  68. break;
  69. }
  70. }
  71. return message;
  72. }
  73. };
  74. dnn.Parameter.prototype.name = "";
  75. dnn.Parameter.prototype.shape = null;
  76. dnn.Shape = class Shape {
  77. constructor() {
  78. }
  79. static decode(reader, length) {
  80. const message = new dnn.Shape();
  81. const end = length !== undefined ? reader.position + length : reader.length;
  82. while (reader.position < end) {
  83. const tag = reader.uint32();
  84. switch (tag >>> 3) {
  85. case 1:
  86. message.dim0 = reader.int32();
  87. break;
  88. case 2:
  89. message.dim1 = reader.int32();
  90. break;
  91. case 3:
  92. message.dim2 = reader.int32();
  93. break;
  94. case 4:
  95. message.dim3 = reader.int32();
  96. break;
  97. default:
  98. reader.skipType(tag & 7);
  99. break;
  100. }
  101. }
  102. return message;
  103. }
  104. };
  105. dnn.Shape.prototype.dim0 = 0;
  106. dnn.Shape.prototype.dim1 = 0;
  107. dnn.Shape.prototype.dim2 = 0;
  108. dnn.Shape.prototype.dim3 = 0;
  109. dnn.Node = class Node {
  110. constructor() {
  111. this.input = [];
  112. this.output = [];
  113. }
  114. static decode(reader, length) {
  115. const message = new dnn.Node();
  116. const end = length !== undefined ? reader.position + length : reader.length;
  117. while (reader.position < end) {
  118. const tag = reader.uint32();
  119. switch (tag >>> 3) {
  120. case 1:
  121. message.layer = dnn.Layer.decode(reader, reader.uint32());
  122. break;
  123. case 2:
  124. message.input.push(reader.string());
  125. break;
  126. case 3:
  127. message.output.push(reader.string());
  128. break;
  129. default:
  130. reader.skipType(tag & 7);
  131. break;
  132. }
  133. }
  134. return message;
  135. }
  136. };
  137. dnn.Node.prototype.layer = null;
  138. dnn.Layer = class Layer {
  139. constructor() {
  140. this.weight = [];
  141. }
  142. static decode(reader, length) {
  143. const message = new dnn.Layer();
  144. const end = length !== undefined ? reader.position + length : reader.length;
  145. while (reader.position < end) {
  146. const tag = reader.uint32();
  147. switch (tag >>> 3) {
  148. case 1:
  149. message.name = reader.string();
  150. break;
  151. case 2:
  152. message.type = reader.string();
  153. break;
  154. case 3:
  155. message.filters = reader.int32();
  156. break;
  157. case 7:
  158. message.a007 = reader.int32();
  159. break;
  160. case 8:
  161. message.a008 = reader.int32();
  162. break;
  163. case 9:
  164. message.groups = reader.int32();
  165. break;
  166. case 10:
  167. message.a010 = reader.int32();
  168. break;
  169. case 11:
  170. message.a011 = reader.int32();
  171. break;
  172. case 14:
  173. message.slope = reader.float();
  174. break;
  175. case 15:
  176. message.intercept = reader.float();
  177. break;
  178. case 50:
  179. message.weight.push(dnn.Tensor.decode(reader, reader.uint32()));
  180. break;
  181. case 72:
  182. message.operation = reader.int32();
  183. break;
  184. case 65:
  185. message.axis = reader.int32();
  186. break;
  187. case 77:
  188. message.a077 = reader.int32();
  189. break;
  190. case 79:
  191. message.scale = reader.float();
  192. break;
  193. case 80:
  194. message.pad_1 = reader.int32();
  195. break;
  196. case 81:
  197. message.pad_2 = reader.int32();
  198. break;
  199. case 82:
  200. message.pad_3 = reader.int32();
  201. break;
  202. case 83:
  203. message.pad_4 = reader.int32();
  204. break;
  205. case 84:
  206. message.pad_5 = reader.int32();
  207. break;
  208. case 85:
  209. message.a085 = reader.int32();
  210. break;
  211. case 90:
  212. message.a090 = reader.int32();
  213. break;
  214. case 101:
  215. message.is_quantized = reader.bool();
  216. break;
  217. case 104:
  218. message.quantization = dnn.Buffer.decode(reader, reader.uint32());
  219. break;
  220. case 109:
  221. message.stride_w = reader.int32();
  222. break;
  223. case 110:
  224. message.stride_h = reader.int32();
  225. break;
  226. case 111:
  227. message.kernel_w = reader.int32();
  228. break;
  229. case 112:
  230. message.kernel_h = reader.int32();
  231. break;
  232. case 115:
  233. message.a115 = reader.int32();
  234. break;
  235. case 116:
  236. message.a116 = reader.int32();
  237. break;
  238. default:
  239. reader.skipType(tag & 7);
  240. break;
  241. }
  242. }
  243. return message;
  244. }
  245. };
  246. dnn.Layer.prototype.name = "";
  247. dnn.Layer.prototype.type = "";
  248. dnn.Layer.prototype.filters = 0;
  249. dnn.Layer.prototype.a007 = 0;
  250. dnn.Layer.prototype.a008 = 0;
  251. dnn.Layer.prototype.groups = 0;
  252. dnn.Layer.prototype.a010 = 0;
  253. dnn.Layer.prototype.a011 = 0;
  254. dnn.Layer.prototype.slope = 0;
  255. dnn.Layer.prototype.intercept = 0;
  256. dnn.Layer.prototype.operation = 0;
  257. dnn.Layer.prototype.axis = 0;
  258. dnn.Layer.prototype.a077 = 0;
  259. dnn.Layer.prototype.scale = 0;
  260. dnn.Layer.prototype.pad_1 = 0;
  261. dnn.Layer.prototype.pad_2 = 0;
  262. dnn.Layer.prototype.pad_3 = 0;
  263. dnn.Layer.prototype.pad_4 = 0;
  264. dnn.Layer.prototype.pad_5 = 0;
  265. dnn.Layer.prototype.a085 = 0;
  266. dnn.Layer.prototype.a090 = 0;
  267. dnn.Layer.prototype.is_quantized = false;
  268. dnn.Layer.prototype.quantization = null;
  269. dnn.Layer.prototype.stride_w = 0;
  270. dnn.Layer.prototype.stride_h = 0;
  271. dnn.Layer.prototype.kernel_w = 0;
  272. dnn.Layer.prototype.kernel_h = 0;
  273. dnn.Layer.prototype.a115 = 0;
  274. dnn.Layer.prototype.a116 = 0;
  275. dnn.Buffer = class Buffer {
  276. constructor() {
  277. }
  278. static decode(reader, length) {
  279. const message = new dnn.Buffer();
  280. const end = length !== undefined ? reader.position + length : reader.length;
  281. while (reader.position < end) {
  282. const tag = reader.uint32();
  283. switch (tag >>> 3) {
  284. case 5:
  285. message.data = reader.bytes();
  286. break;
  287. default:
  288. reader.skipType(tag & 7);
  289. break;
  290. }
  291. }
  292. return message;
  293. }
  294. };
  295. dnn.Buffer.prototype.data = new Uint8Array([]);
  296. dnn.Tensor = class Tensor {
  297. constructor() {
  298. }
  299. static decode(reader, length) {
  300. const message = new dnn.Tensor();
  301. const end = length !== undefined ? reader.position + length : reader.length;
  302. while (reader.position < end) {
  303. const tag = reader.uint32();
  304. switch (tag >>> 3) {
  305. case 1:
  306. message.dim0 = reader.int32();
  307. break;
  308. case 2:
  309. message.dim1 = reader.int32();
  310. break;
  311. case 3:
  312. message.dim2 = reader.int32();
  313. break;
  314. case 4:
  315. message.dim3 = reader.int32();
  316. break;
  317. case 5:
  318. message.data = reader.bytes();
  319. break;
  320. case 6:
  321. message.quantized_data = reader.bytes();
  322. break;
  323. default:
  324. reader.skipType(tag & 7);
  325. break;
  326. }
  327. }
  328. return message;
  329. }
  330. };
  331. dnn.Tensor.prototype.dim0 = 0;
  332. dnn.Tensor.prototype.dim1 = 0;
  333. dnn.Tensor.prototype.dim2 = 0;
  334. dnn.Tensor.prototype.dim3 = 0;
  335. dnn.Tensor.prototype.data = new Uint8Array([]);
  336. dnn.Tensor.prototype.quantized_data = new Uint8Array([]);